0%

find命令

find

在指定目录下查找文件。

使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件(即默认递归查找)。并且将查找到的子目录和文件全部进行显示。

语法

1
find path expression

expression:表达式,选项,参数。

find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。

注意:path最好不要省略。

expression 中可使用的选项有二三十个之多,用到的时候可以查一下。

常见的有:

-print

-name

-iname

-maxdepth

-type

-and

-or

-not

示例

eg1:列出当前目录及子目录下所有文件和文件夹

find .

结果:

1
2
3
4
5
6
7
.
./.DS_Store
./compress.sh
./compressed
./compressed/疑问.png
./compressed/QQ20220619-004415@2x.png
./compressed/v2-ae634956702d53f64862c9fe58691e7d_1440w.jpg

eg2:仅在当前目录查找。

find . -maxdepth 1

结果:

1
2
3
4
.
./.DS_Store
./compress.sh
./compressed

eg3:在当前目录中查找指定的文件

find /Applications/Xcode.app -name symbolicatecrash

结果:

1
2
3
4
/Applications/Xcode.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

在当前路径下递归查找以.txt结尾的文件

find . -name "*.txt"

eg4:仅在当前路径下查找以.png、.jpg、.jpeg结尾的文件

find . -maxdepth 1 -name "*.png" -or -name "*.jpg" -or -name "*.jpeg"

参考

find Linux命令搜索的一个网站

觉得文章有帮助可以打赏一下哦!