kas*_*der 1 command-line ls bash command
如何在不使用 ls 命令的情况下列出当前目录或任何目录路径内容?我们可以使用 echo 命令来完成吗?
printf '%s\n' *
Run Code Online (Sandbox Code Playgroud)
因为 shell 命令将列出当前目录中的非隐藏文件,每行一个。如果没有非隐藏文件,它将*单独显示,除非在已修复该问题的那些 shell(csh、tcsh、fish、zsh、bash -O failglob)中。
echo *
Run Code Online (Sandbox Code Playgroud)
将列出由空格字符分隔的非隐藏文件,除非(取决于 shell/echo 实现)当第一个文件名开头-或文件名包含反斜杠字符时。
重要的是要注意,*在将其传递给命令之前,shell 将其扩展到文件列表中。您可以在此处使用任何命令,例如head -- *显示前几行(使用head接受多个文件的实现),stat -- *...
我想包含隐藏文件:
printf '%s\n' .* *
Run Code Online (Sandbox Code Playgroud)
(取决于外壳,也将包括.和..)。与zsh:
printf '%s\n' *(D)
Run Code Online (Sandbox Code Playgroud)
在ls可以列出目录内容的其他应用程序中(除了 shell globs 和),还有find:
find . ! -name . -prune
Run Code Online (Sandbox Code Playgroud)
(包括隐藏文件,除了.和..)。
在 Linux 上,lsattr(列出 Linux 扩展文件属性):
lsattr
lsattr -a # to include hidden files like with ls
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25975 次 |
| 最近记录: |