标签: ls

如何从“ls -R”输出中排除目录?

如果

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)模式设计的组合都需要解决才能解决这个问题。在我最终在这方面花费太长时间之前,感谢您的帮助。

ls grep directory-structure regular-expression

2
推荐指数
1
解决办法
1万
查看次数

列出当前目录中的文件,前缀数字

我正在尝试学习 bash,并尝试使用 a.sh 中的 bash 脚本列出文件夹中的文件,如下所示:

1: a.sh
2: b.sh
3: c.sh
Run Code Online (Sandbox Code Playgroud)

我查看了 ls 和 find 命令,但它们似乎没有像我想要的那样以数字为前缀。请帮忙!

ls bash find

2
推荐指数
1
解决办法
2301
查看次数

对 ls 输出进​​行排序,其中文件以数字结尾

这是我的正常命令的输出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 shell-script sort

2
推荐指数
1
解决办法
1033
查看次数

有没有一种方法可以在不使用“ls”的情况下显示文件的权限

仅此而已 - 只是想知道是否有其他方法可以找出文件的权限,而无需执行查看ls -l那里的值字符串。

据我所知,没有显示选项chmod

linux ls permissions chmod aix

2
推荐指数
1
解决办法
1042
查看次数

“dircolors”在这里可以代替“eval `”dircolors`”`“吗?

我正在检查 .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?有什么不同?

ls bash eval

2
推荐指数
1
解决办法
4207
查看次数

/$ 和 ~$ 之间的差异

当我登录到运行 Ubuntu 18.04.3 (LTS) x64 的服务器并运行ls任何内容时,命令提示符末尾有一个 ~$ 。当我键入提示符时,cd /提示符更改为 /$,我可以看到列出了更多目录。当我登录时,我最初是在用户的主目录中,然后通过使用cd /我是否更改为系统的根目录?

ls ubuntu directory home

2
推荐指数
1
解决办法
5943
查看次数

如何列出符号链接的目标文件的属性(尤其是日期)?

键入时,ls -la我们会获取当前目录中的文件列表,其中符号链接还打印了其目标文件。

显示符号链接时,shell 会打印符号链接本身的属性(特别是日期)。

是否有打印目标属性的选项?

ls date symlink

2
推荐指数
1
解决办法
1379
查看次数

如何列出文件 - 按文件名和修改日期排序?

我有一些文件名以 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)

ls bash sort

2
推荐指数
1
解决办法
122
查看次数

ls --color=auto,为什么他们提供这样的选项,因为默认情况下有 --color=always ?

man ls

With --color=auto,
       ls emits color codes only when standard output is connected to a terminal.
Run Code Online (Sandbox Code Playgroud)

只是出于好奇。当标准输出未连接到终端时,如果我发出颜色会有什么影响?

因为发射颜色需要额外的计算,所以如果标准输出没有连接到终端,我们就不需要它并且可以节省一些计算?

ls colors

2
推荐指数
1
解决办法
4209
查看次数

使用 xargs 和 grep 列出目录内容

我有一个目录,里面有很多以模式命名的 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'它会选择其中包含数字的文件名,只要我指定了多重性正则表达式,就没有任何匹配。

ls grep xargs

2
推荐指数
1
解决办法
122
查看次数