find,顾名思义,寻找,查询的意思,所以,从意思上看,find命令的主要功能是查询,搜索文件
find命令的一般格式为:
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
find命令常用格式为:
find [path...] [expression]
(一) 对find命令的基本应用:
1.find或find .
当在linux命令行中仅输入find命令其后不跟任何东西时,find命令通常执行查询当前目录下所有文件及文件夹(包括隐藏文件及文件夹);
[zhanglinlin@localhost work]$ find
.
./.file.swp
./test.c
./file
./.file.swo
./test
./cmd
./text
./.test
2.find name
此命令中name表示要查询的文件名称,当执行此命令时,将会在当前目录下寻找文件名为name的文件,并予以显示,仅限从当前目录中查找。
[zhanglinlin@localhost work]$ find test
test
3.find dir
此命令中dir表示要查询的文件夹名称,当执行此命令时,将会寻找名为dir的文件夹并显示文件夹名及此文件夹内所有的内容,包括隐藏内容,仅限当前目录下。
[zhanglinlin@localhost ~]$ find work
work
work/.file.swp
work/test.c
work/file
work/.file.swo
work/test
work/cmd
work/text
work/.test
4.find *.c
此命令中c表示文件的扩展名,执行此命令将会寻找当前目录下所有扩展名为.c的文件,*表示所有。
[zhanglinlin@localhost work]$ find *.c
test.c
5.find /
此命令表示从根目录下查找所有文件及文件夹。
6.find ~
此命令表示从HOME目录下查找所有文件。
(二)几种find命令常用格式:
1.-name
(1)想要在当前目录及子目录中查找所有的*.c文件,可以用:
find . -name *.c -print
[zhanglinlin@localhost work]$ find . -name *.c -print
./test.c
(2)想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:
find . -name [A-Z]* -print
(3)想要在/etc目录中查找文件名以host开头的文件,可以用:
find /etc -name host* -print
(4)想要查找$HOME目录中的文件,可以用:
find ~ -name * -print 或
find . -print
(5)要想让系统高负荷运行,就从根目录开始查找所有的文件。
find / -name * -print
(6)如果想在当前目录查找文件名以一个个小写字母开头,最后是4到9加上.log结束的文件
命令:
find . -name [a-z]*[4-9].c -print
2.perm
这是一种基于文件权限的查询方式,文件权限即为 读 、写、 执行以八进制数表示。命令格式如下:
find . -perm 775 或
find . -perm -775
3.-prune
这是一种当你知道某目录下无你要寻找的文件时,此命令用以忽视这个目录,命令如下:
find test -path "test/test1" -prune -o
表示在test下忽略test1目录查找文件。
4。按照更改时间查找文件:
如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项。
用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。
希望在系统根目录下查找更改时间在5日以内的文件,可以用:
find / -mtime -5
为了在/var/adm目录下查找更改时间在3日以前的文件,可以用:
find /var/adm -mtime +3
5.type
查找当前目录下所有的目录:
find . -type d
[zhanglinlin@localhost work]$ find . -type d
.
./text
在当前目录下查找除目录以外的所有类型的文件
命令:
find . ! -type d
在/etc目录下查找所有的符号链接文件
命令:
find /etc -type l
6.depth
在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。使用depth选项就可以使find命令这样做。这样做的一个原因就是,当在使用find命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中的文件。
find命令从文件系统的根目录开始,查找一个名为test的文件。
命令:
find / -name "test" -depth
说明:
它将首先匹配所有的文件然后再进入子目录中查