我可以ls -ld */
用来列出当前目录中的所有目录条目。是否有类似的简单方法仅列出当前目录中的所有常规文件?我知道我可以使用查找
find . -maxdepth 1 -type f
或统计
stat -c "%F %n" * | grep "regular file" | cut -d' ' -f 3-
但是这些并没有让我觉得自己太过优雅。是否有一种很好的简短方法仅列出常规文件(我不在乎设备,管道等),而不列出当前目录的子目录?列出符号链接也将是一个加号,但不是必须的。
使用zsh
and Glob限定词,您可以轻松地直接表达它,例如:
echo *(.)
只会返回常规文件列表,也可能会返回错误,具体取决于您的配置。
对于非目录:
echo *(^/)
(将包括符号链接(包括目录),命名管道,设备,套接字,门...)
echo *(-.)
用于常规文件和指向常规文件的符号链接。
echo *(-^/)
用于非目录,也没有指向目录的符号链接。
另外,D
如果您想包含D ot文件(隐藏文件),请参阅遍历限定符,例如*(D-.)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句