find命令的一般格式
find命令选项
使用 name 选项
使用 perm选项
find . -perm 755(权限八进制) -print
忽略某个目录 使用 -prune 选项, 如果同时使用了-depth选项,那么find命令将忽略-prune选项
举例 如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找, 可以用:
find /apps(查找路径) -name(文件名) "/apps/bin"(忽略目录) -prune -o -print
按照更改时间查找文件
举例 希望在系统根目录下查找更改时间在5日以内的文件,可以用:
find /(路径) -mtime -5(“-”表示几天以内,5是天数) -print
举例 为了在/var/adm目录下查找更改时间在3日以前的文件,可以用:
find /var/adm(路径) -mtime +3("+"表示n日以前,3是天数) -print
查找比某个文件新或旧的文件 使用newer选项 它的一般形式
find .(路径) -newer file1(旧文件) ! file2(新文件)
根据文件类型 查找 使用type 选项
举例 如果要在/etc目录下查找所有的目录,可以用:
find /etc(路径) -type d(文件类型) -print
举例 为了在当前目录下查找除目录以外的所有类型的文件,可以用:
find .(路径) ! -type d(文件类型) -print
根据文件长度查找文件 使用size选项 这里所指的文件长度既可以用块计量,也可以用字节来计量。以字节计量文件长度的表达形式为Nc;以块计量文件长度只用数字表示即可。
举例 为了在当前目录下查找文件长度大于1M字节的文件,可以用:
find .(路径) -size +1000000c(大小) -print
查找时 希望先查找所有文件,然后再查找子目录,使用depth选项
举例 在根目录开始, 查找一个名为CON.FILE的文件。它将首先匹配所有的问价你然后再进入子目录中查找。
find / -name "CON.FILE" -depth -print
在当前的文件系统中查找文件(不进入其他文件系统),可以使用mount选项。
举例 我们从当前目录开始查找位于本文件系统中文件名为XC结尾的文件。
find . -name "*.XC" -mount -print
当匹配到一些文件以后,可能希望对其进行某些操作,这时就可以使用 -exec选项或者ok选项。
exec选项后面跟随着所要执行的命令,然后是一对{},一个空格和一个\,最后是一个分号。
举例 为了用ls -l 命令列出所匹配到的文件,可以把ls -l 命令放在find 命令的-exec选项中,
find .(路径) -type f(文件类型) -exec ls -l(操作命令) {} \;
xargs
xargs命令每次只获取一部分文件而不是全部,不像 -exec选项那样。
举例 查找系统中的每一个文件,然后使用xargs命令来测试它们分别属于哪类文件:
find / -type f -print | xargs file
小结
find命令是一个非常优秀的工具,它可以按照用户指定的准则来匹配文件。使用 exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令。
find命令选项
使用 name 选项
使用 perm选项
find . -perm 755(权限八进制) -print
忽略某个目录 使用 -prune 选项, 如果同时使用了-depth选项,那么find命令将忽略-prune选项
举例 如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找, 可以用:
find /apps(查找路径) -name(文件名) "/apps/bin"(忽略目录) -prune -o -print
按照更改时间查找文件
举例 希望在系统根目录下查找更改时间在5日以内的文件,可以用:
find /(路径) -mtime -5(“-”表示几天以内,5是天数) -print
举例 为了在/var/adm目录下查找更改时间在3日以前的文件,可以用:
find /var/adm(路径) -mtime +3("+"表示n日以前,3是天数) -print
查找比某个文件新或旧的文件 使用newer选项 它的一般形式
find .(路径) -newer file1(旧文件) ! file2(新文件)
根据文件类型 查找 使用type 选项
举例 如果要在/etc目录下查找所有的目录,可以用:
find /etc(路径) -type d(文件类型) -print
举例 为了在当前目录下查找除目录以外的所有类型的文件,可以用:
find .(路径) ! -type d(文件类型) -print
根据文件长度查找文件 使用size选项 这里所指的文件长度既可以用块计量,也可以用字节来计量。以字节计量文件长度的表达形式为Nc;以块计量文件长度只用数字表示即可。
举例 为了在当前目录下查找文件长度大于1M字节的文件,可以用:
find .(路径) -size +1000000c(大小) -print
查找时 希望先查找所有文件,然后再查找子目录,使用depth选项
举例 在根目录开始, 查找一个名为CON.FILE的文件。它将首先匹配所有的问价你然后再进入子目录中查找。
find / -name "CON.FILE" -depth -print
在当前的文件系统中查找文件(不进入其他文件系统),可以使用mount选项。
举例 我们从当前目录开始查找位于本文件系统中文件名为XC结尾的文件。
find . -name "*.XC" -mount -print
当匹配到一些文件以后,可能希望对其进行某些操作,这时就可以使用 -exec选项或者ok选项。
exec选项后面跟随着所要执行的命令,然后是一对{},一个空格和一个\,最后是一个分号。
举例 为了用ls -l 命令列出所匹配到的文件,可以把ls -l 命令放在find 命令的-exec选项中,
find .(路径) -type f(文件类型) -exec ls -l(操作命令) {} \;
xargs
xargs命令每次只获取一部分文件而不是全部,不像 -exec选项那样。
举例 查找系统中的每一个文件,然后使用xargs命令来测试它们分别属于哪类文件:
find / -type f -print | xargs file
小结
find命令是一个非常优秀的工具,它可以按照用户指定的准则来匹配文件。使用 exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令。