find命令可以按照指定的规则对硬盘上的文件进行查找,且可以跨越不同的文件系统。find命令的使用方法:

1
find fold [option]

  下面按照不同的选项介绍find命令。

find -name

  -name是最常用的选项,它指定了需要查找的文件名的模式,模式中可以使用通配符和简单的正则表达式。下面的命令查找Wdir目录下的.cpp文件:

1
2
3
4
5
6
7
8
9
10
11
dutor@dutor-desktop:~$ find Wdir -name "*.cpp"
Wdir/Cpp/Pthread/main.cpp
Wdir/Cpp/STL/sort_list.cpp
Wdir/Cpp/STL/Heap.cpp
Wdir/Cpp/STL/operator.cpp
Wdir/Cpp/STL/bind2nd/main.cpp
Wdir/Cpp/STL/Kth-Max.cpp
Wdir/Cpp/STL/priority_queue.cpp
Wdir/Cpp/ACM/Huffman/main.cpp
Wdir/Cpp/ACM/Bellman-Ford/main.cpp
......

  需要注意的是,如果搜索目录以相对路径形式指定,则搜索结果也以相对路径形式给出;否则,搜索结果以绝对路径形式给出。

find -user

  -user选项指定需要搜索的文件的属主/用户。相似地,-group指定需要搜索的用户组。

find -type

  -type选项指定文件的类型,该选项可以使用的参数如下:

文件类型字符 含义
f 普通文件
d 目录
l 符号链接
b 块文件
c 字符文件
p FIFO管道文件
s 套接字

find ! -option

  !可以对特定选项进行反义,下面命令搜索不属于dutor用户的.cpp文件:

1
find . -name "*.cpp" ! -user dutor

  注意!与-之间的空格。

find -size

  使用-size选项可以根据文件的大小进行查找。下面命令查找大小为10M(近似)的文件:

1
find . -size 10M

  -size选项的参数的单位可以是

单位字符 含义
b block,默认512字节
c 字节
k 1024字节
M 1024k
G 1024M

  另外,-size参数前还可以使用+和-,分别表示大于和小于指定大小的文件。例如下面命令查找大于10M的文件:

1
find . -size +10M

find -a

  find命令的各选项可以利用-a, -o, -n进行逻辑组合。-a表示AND,-o表示OR,-n表示NOT。另外还可以使用转义的括号\(\)对逻辑表达式进行分组。例如下面命令查找大于或等于10M的普通文件:

1
find . \( -size +10M -o -size 10M \) -a -type f

find -exec

  -exec是一个非常有用的选项,它允许对find的查找结果文件执行某个命令。例如,想把当前目录下所有的扩展名为.JPG的图片扩展名改为.jpg,可以执行如下命令:

1
find . -name "*.JPG" -exec rename 's/JPG/jpg/g' {} \;

  其中{}表示find查找结果文件中的一个的文件名,转义的分号\;作为exec选项的结束,另外\;之前需要一个空格。

Tags: ,.
你好!除了代码,此处没有多少原创之物,皆为本人搜集、整理、总结之记录与心得,欢迎转载分享!转载时请尽量注明出处,将不胜感激。祝你健康、快乐!
Home

RFC: Request For Comments. Orz..

Name(required)
Mail (required),(will not be published)

RFC: Request For Comments. Orz..

Website(recommended)