工作目录包含几个子目录,每个子目录包含一些以 开头的隐藏文件.
。
我如何使用ls
命令显示所有文件(包括隐藏文件),但我想排除文件名为.
和..
?
我试过了,ls -a | grep -v '^\.'
但它不显示子目录中的文件。而且该选项-ignore
也不起作用。
答案1
如果您想ls
显示子目录,您需要添加-R
。
您grep -v '^\.'
将删除以 开头的所有内容.
,包括隐藏文件。更好的模式是明确删除和.
。模式越具体,删除不需要的行时出现的问题就越少。..
'^\.$|^\.\.$'
综合起来得到:
ls -aR | egrep -v '^\.$|^\.\.$'
请注意,如果它只是隐含的.
并且..
您想要删除,您也可以使用ls -AR
。来自man ls
:
-a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and ..
答案2
现在无法测试,但可以肯定它会起作用。不清楚您是否想列出工作目录中的非目录文件,因此跳过了这些。
ls -d */* */.??*