如何使用 ls 命令显示所有文件(包括隐藏文件),但不显示名为“。”和“..”的文件

如何使用 ls 命令显示所有文件(包括隐藏文件),但不显示名为“。”和“..”的文件

工作目录包含几个子目录,每个子目录包含一些以 开头的隐藏文件.

我如何使用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 */* */.??*

相关内容