如何不使用ls命令列出当前目录或任何目录路径内容?我们可以使用echo命令吗?
printf '%s\n' *
作为shell命令,它将列出当前目录中的非隐藏文件,每行列出一个。如果没有非隐藏文件,它将*
仅显示在已解决该问题的那些shell中(csh,tcsh,fish,zsh,bash -O failglob)。
echo *
当第一个文件名以开头-
或文件名包含反斜杠字符时,将列出用空格字符分隔的非隐藏文件(取决于shell / echo的实现)。
重要的是要注意,这是外壳程序*
在将其传递到命令之前将其扩展到文件列表中。您可以在此处使用任何命令head -- *
来显示前几行(以及那些head
接受多个文件的实现),stat -- *
...
我要包含隐藏文件:
printf '%s\n' .* *
(取决于外壳,其中还将包括.
和..
)。与zsh
:
printf '%s\n' *(D)
在ls
可以列出目录内容的其他应用程序中(除了shell glob和),还有find
:
find . ! -name . -prune
(包括.
和除外的隐藏文件..
)。
在Linux上,lsattr
(列出Linux扩展文件属性):
lsattr
lsattr -a # to include hidden files like with ls
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句