如果
ls -aR | grep ":$"
回报
./.hiddendir2:
./dir1:
./dir3:
./dir3/.hiddendir4:
Run Code Online (Sandbox Code Playgroud)
那么你如何更新给 grep 的模式,以便你只得到
./dir1:
./dir3:
Run Code Online (Sandbox Code Playgroud)
(请注意,包含 .hiddendir4 的最后一行被省略,即使它的父级未被隐藏)
这是同一问题的冗长版本,带有一些上下文:
我在http://www.centerkey.com/tree/上找到了一个很棒的脚本,用于打印目录树,但输出有时会被我正在处理的存储库的 .git 目录的后代弄乱。
如果我正确地阅读了源代码,我需要更改这一行的 grep 的模式:
ls -aR | grep ":$"
到目前为止,我想出了在http://regexpal.com/^\./(?!\.)\w+:$上测试时似乎可行的方法,但当我尝试在 bash 中运行时就崩溃了。我怀疑(1)我使用的正则表达式测试工具之间的差异与 grep 如何解析模式,(2)bash 转义字符要求和(3)模式设计的组合都需要解决才能解决这个问题。在我最终在这方面花费太长时间之前,感谢您的帮助。
我正在尝试学习 bash,并尝试使用 a.sh 中的 bash 脚本列出文件夹中的文件,如下所示:
1: a.sh
2: b.sh
3: c.sh
Run Code Online (Sandbox Code Playgroud)
我查看了 ls 和 find 命令,但它们似乎没有像我想要的那样以数字为前缀。请帮忙!
这是我的正常命令的输出ls:
f1 f10 f11 f12 f13 f14 f15 f16 f17 f18 f19 f2 f20 f3 f4 f5 f6 f7 f8 f9
Run Code Online (Sandbox Code Playgroud)
所以我有20个文件。我需要它们显示为:
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 f18 f19 f20
Run Code Online (Sandbox Code Playgroud)
除了编写脚本之外,还有任何单行命令吗?我相信你们中的一些人一定遇到过这种奇怪的情况。注:以上只是一个示例。在实际场景中,我需要按正确排序顺序列出所有文件名的列表。(范围从f{0..10000})
仅此而已 - 只是想知道是否有其他方法可以找出文件的权限,而无需执行查看ls -l那里的值字符串。
据我所知,没有显示选项chmod。
我正在检查 .bashrc 来设置 ls 命令的颜色,发现了这个
export SHELL='/bin/bash'
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'Run Code Online (Sandbox Code Playgroud)dircolors如果我使用而不是与 一起使用
会有什么问题吗eval?有什么不同? 当我登录到运行 Ubuntu 18.04.3 (LTS) x64 的服务器并运行ls任何内容时,命令提示符末尾有一个 ~$ 。当我键入提示符时,cd /提示符更改为 /$,我可以看到列出了更多目录。当我登录时,我最初是在用户的主目录中,然后通过使用cd /我是否更改为系统的根目录?
键入时,ls -la我们会获取当前目录中的文件列表,其中符号链接还打印了其目标文件。
显示符号链接时,shell 会打印符号链接本身的属性(特别是日期)。
是否有打印目标属性的选项?
我有一些文件名以 00, 01, ... 开头,但可以有多个文件名具有相同的编号,即 00_filename1, 00_filename2。我想按名称排序列出它们,但是如果有更多具有相同起始编号的文件,我希望它们也按修改日期(按降序)排序。
所以而不是这个:
Oct 31 19:05 00_trash
Oct 31 19:14 00_trash_00
Oct 31 18:57 01_creating_dirs.py
Oct 31 19:05 01_trash
Oct 31 16:20 02_creating_csv.py
Oct 31 19:22 02_renaming_files.sh
Oct 31 16:20 03_creating_db.py
Oct 31 19:06 03_trash
Oct 31 16:21 04_importing_csv_to_db.py
Oct 31 16:20 05_some_xl.py
Oct 31 16:22 06_regex.py
Run Code Online (Sandbox Code Playgroud)
然后我想这样排序:
Oct 31 19:14 00_trash_00
Oct 31 19:05 00_trash
Oct 31 19:05 01_trash
Oct 31 18:57 01_creating_dirs.py
Oct 31 19:22 02_renaming_files.sh
Oct 31 16:20 02_creating_csv.py
Oct 31 19:06 …Run Code Online (Sandbox Code Playgroud) 从man ls:
With --color=auto,
ls emits color codes only when standard output is connected to a terminal.
Run Code Online (Sandbox Code Playgroud)
只是出于好奇。当标准输出未连接到终端时,如果我发出颜色会有什么影响?
因为发射颜色需要额外的计算,所以如果标准输出没有连接到终端,我们就不需要它并且可以节省一些计算?
我有一个目录,里面有很多以模式命名的 json 和 pdf 文件。我正在尝试\d{11}-\d\.(?:json|pdf)在命令中使用以下模式过滤 name 上的文件。由于某种原因,它不起作用。我相信这是由于 xargs 将参数作为一大行字符串,或者当输入被分割时有一些空格、\n 或空字符。
ls | xargs -d '\n' -n 1 grep '\d{11}-\d\.(?:json|pdf)'
如果我只尝试这个ls | xargs -d '\n' -n 1 grep '\d'它会选择其中包含数字的文件名,只要我指定了多重性正则表达式,就没有任何匹配。