仅显示以开头的文件。(隐)


11

我试图仅显示隐藏文件,但不知道如何做。

那是可行的(但也匹配其他地方的点)

ls -la | grep '\.'

正在尝试添加^但未找到解决方案。


1
解析ls从来都不是一个绝妙的主意,但是如果您使用锚点^来表示比赛开始,那么您尝试过的尝试将奏效。 ls -la | grep '^\.'
devnull 2014年

3
不,不会,文件名不是带有-l标志的行的开头。 ls -la | awk '$9 ~ /^\./'将。
yoonix

Answers:



5
find . -type f -name '\.*' -print 

如果要在目录层次结构中列出每个隐藏文件,则必须工作。


2

如果要解析ls输出,则必须^在正则表达式的开头添加并且不要使用-loption。使用将-l导致每行输出以文件或文件夹权限信息开头,而不是以文件或文件夹名称开头。所以你应该这样使用:

ls -Ad | grep '^\.'

或者您可以使用printf内置的bash 来做:

printf "%s\n" .*

如果使用zsh,则可以使用:

print -l .*

1

这是仅查找隐藏文件的另外两种方法。

find . -maxdepth 1 -name ".*" -type f -ls

要么

find . -maxdepth 1 -name ".*" -type f -printf "%P \n"

使用-maxdepth指定要多远在目录树中进行搜索。


1

Flup答案的改进:

ls -lad .[!.]* ..?*

这将列出所有名称以点开头且都不为.或的文件..

需要注意的是,如果你想管的输出ls,以grep(其中,由devnull指出的,是不是一个好主意),请确保您使用\lscommand ls因为如果ls化名为您展示彩色输出(因为它是在Debian为例) ,其输出包含ANSI转义序列以创建彩色输出,grep如果其模式锚定在行的开头,则该输出会跳闸。


1
您可以使用-A(而不是-a)忽略...
OJFord

@ OJFord + -A与属于其-a的目录有所不同ls,但是两者(相等)都被忽略,并且对于在命令行上指定的有效名称-d无效。另外,如果ls别名为别名,--color=auto 则管道还可以;仅--color=always--color引起麻烦。
dave_thompson_085 '18

0

val0x00ff的解决方案确实不错,但它会忘记隐藏目录。

如果要隐藏文件 隐藏目录,则不带。和..:

find -maxdepth 1 -regex '\./\..+' -printf "%P\n"

您的建议在VMware ESXi上失败(不列出文件和目录),在Linux上也失败(maxdepth> 1,它也列出了以。开头的目录中的所有文件),但这在Linux和ESXi上均适用:find . \( -type f -o -type d \) -name '\.*' -print; 申请maxdepth需要的地方。
Jeroen Wiert Pluimers

0

下一个非常紧凑,并支持许多变体

1)显示隐藏的文件,目录和子目录

find . | grep "^\./\."

2)仅显示隐藏的目录和子目录

find . -type d | grep "^\./\."

3)仅在当前目录和子目录中显示隐藏文件

find . -type f | grep "^\./\."

4)显示当前文件夹中的隐藏文件和目录

find . -maxdepth 1 | grep "^\./\."


0

你可以试试:

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"

-1

你可以试试 :

ls -a |grep -E  "^\."

^表示这是regexp内容的开始


1
3年前另一个答案的重复...
Jeff Schaller

我看到了前面的答案,它不是重复的,并且肯定“ ls -a”和“ ls -Ad”的含义不相同。“ -a”表示列出所有以“。”开头的文件/目录。-A表示列出除“”之外的所有内容。,“ ..”和目录内容。
法国灵境
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.