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 '^\.'