Answers:
这是仅查找隐藏文件的另外两种方法。
find . -maxdepth 1 -name ".*" -type f -ls
要么
find . -maxdepth 1 -name ".*" -type f -printf "%P \n"
使用-maxdepth
指定要多远在目录树中进行搜索。
Flup答案的改进:
ls -lad .[!.]* ..?*
这将列出所有名称以点开头且都不为.
或的文件..
。
需要注意的是,如果你想管的输出ls
,以grep
(其中,由devnull指出的,是不是一个好主意),请确保您使用\ls
或command ls
因为如果ls
化名为您展示彩色输出(因为它是在Debian为例) ,其输出包含ANSI转义序列以创建彩色输出,grep
如果其模式锚定在行的开头,则该输出会跳闸。
-A
(而不是-a
)忽略.
,..
。
-A
与属于其-a
的目录有所不同ls
,但是两者(相等)都被忽略,并且对于在命令行上指定的有效名称-d
无效。另外,如果ls
别名为别名,--color=auto
则管道还可以;仅--color=always
或--color
引起麻烦。
val0x00ff的解决方案确实不错,但它会忘记隐藏目录。
如果要隐藏文件 和 隐藏目录,则不带。和..:
find -maxdepth 1 -regex '\./\..+' -printf "%P\n"
find . \( -type f -o -type d \) -name '\.*' -print
; 申请maxdepth
需要的地方。
你可以试试:
find . -maxdepth 1 -type f -name '\.*' -print
find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -print
当然,您可以使用其他maxdepth
值或将其完全删除。如果您想在目录(-type d
)或常规文件(type f
)或两者之间浏览,并与其他功能结合使用,将非常有帮助:
(例如,上次修改时间,基于@piroux示例-由@ jeroen-wiert-pluimers完成)
find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -exec stat -c %y {} \; -printf "%P\t"
你可以试试 :
ls -a |grep -E "^\."
^表示这是regexp内容的开始
ls
从来都不是一个绝妙的主意,但是如果您使用锚点^
来表示比赛开始,那么您尝试过的尝试将奏效。ls -la | grep '^\.'