Linux命令:find命令
Linux命令:find命令
find命令(1)
》find命令:Linux系统查找文件的命令,find命令能帮助用户在使用、管理Linux的日常事务中方便的查找出用户所需要的文件。
》find命令格式:find [路径] [选项] [操作]
》路径是find命令所有查找的目录路径,例如用 . 来表示当前目录, 用 / 来表示系统根目录.
》选项用于指定查找条件,例如:可以指定按照文件属主、更改时间、文件类型等条件查找。
》操作用于指定结果的输出方式
操作名称 |
意义 |
|
将匹配的文件输出到标准输出 |
exec |
对匹配的文件执行该参数所给出的Shell命令。相应命令的形式为’command’{} \;,注意{ } 和 \; 之间的空格 |
ok |
和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的Shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。(涉及到更改权限、删除文件的时候最好是采用 ok 操作,而不是用exec操作) |
|
|
选项 |
意义 |
name |
根据文件名查找文件 |
perm |
根据文件权限查找文件 |
prune |
使用这一选项可以使用find命令不在当前指定的目录中查找,如果同时使用 -depth 将被find命令忽略。 |
user |
根据文件属主查找文件 |
group |
根据文件所属的用户组查找文件 |
mtime -n +n |
根据文件的更改时间查找文件, -n表示文件更爱时间距今在n天之内,+n表示文件更改时间距今在n天前。 |
nogroup |
查找无有效所属组的文件,即该文件的所属组在/etc/group中不存在 |
nouser |
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在 |
-newer filel ! file2 |
查找更改时间比文件file1新但比文件file2旧的文件 |
type |
查找某一类型的文件,type后跟的子选项及其意义如下: b:块设备文件 d:目录 c:字符设备文件 p:管道文件 l:符号链接文件 f:普通文件 |
size n:[c] |
查找文件长度为n块的文件,带有c时表示文件长度以字节计 |
depth |
在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找 |
find命令(2)
》find命令选项很多,可以灵活地指定各种搜索条件
》find命令操作却只有三种
》print简单打印搜索结果
》ok操作和exec的左右相同,都可以对搜索结果执行命令,但是,ok操作在操作之前会给出提示,让用户确定之后才执行。
下面例子是查找当前目录下, 文件名含 a 字符,权限(ugo)为可读可写不可执行(4+2=6)、可读不可写不可执行(4)与可读不可写不可执行(4)
#直接打印搜索的结果 root@ubuntu:~# find . -name '*a*' -perm 644 -print ./.cache/motd.legal-displayed ./hahaha ./.bashrc ./Bryan_Adams-Here_I_Am.mp3 ./argv.awk #使用exec输出操作,打印文件详细信息 root@ubuntu:~# find . -name '*a*' -perm 644 -exec ls -l {} \; -rw-r--r-- 1 root root 0 Feb 6 22:42 ./.cache/motd.legal-displayed total 0 -rw-r--r-- 1 root root 3106 Apr 19 2012 ./.bashrc -rw-r--r-- 1 root root 10796012 Feb 6 12:44 ./Bryan_Adams-Here_I_Am.mp3 -rw-r--r-- 1 root root 74 Feb 6 23:02 ./argv.awk #使用ok输出操作,每次打印详细信息的时候都会询问,是否打印.Y:则打印,N:则不打印 root@ubuntu:~# find . -name '*a*' -perm 644 -ok ls -l {} \; < ls ... ./.cache/motd.legal-displayed > ? y -rw-r--r-- 1 root root 0 Feb 6 22:42 ./.cache/motd.legal-displayed < ls ... ./hahaha > ? Y total 0 < ls ... ./.bashrc > ? y -rw-r--r-- 1 root root 3106 Apr 19 2012 ./.bashrc < ls ... ./Bryan_Adams-Here_I_Am.mp3 > ? y -rw-r--r-- 1 root root 10796012 Feb 6 12:44 ./Bryan_Adams-Here_I_Am.mp3 < ls ... ./argv.awk > ? y -rw-r--r-- 1 root root 74 Feb 6 23:02 ./argv.awk #使用ok输出操作,每次打印详细信息的时候都会询问,是否打印.Y:则打印,N:则不打印 root@ubuntu:~# find . -name '*a*' -perm 644 -ok ls -l {} \; < ls ... ./.cache/motd.legal-displayed > ? y -rw-r--r-- 1 root root 0 Feb 6 22:42 ./.cache/motd.legal-displayed < ls ... ./hahaha > ? n < ls ... ./.bashrc > ? y -rw-r--r-- 1 root root 3106 Apr 19 2012 ./.bashrc < ls ... ./Bryan_Adams-Here_I_Am.mp3 > ? y -rw-r--r-- 1 root root 10796012 Feb 6 12:44 ./Bryan_Adams-Here_I_Am.mp3 < ls ... ./argv.awk > ? n |