[unix shell笔记] - find命令
[unix shell笔记] - find命令
find 命令格式如下: find pathname -options [-print -exec -ok]
pathname 查找路径, 可以是. ~ / /directory等形式 -option 主要选项如下: -name 按照文档名称查找 -perm 按照文档权限查找 -prune 不在当前指定的路径查找。假如同时指定了-depth选项,则prune被忽略 -user 按照文档属主查找 -group 按照文档属组查找 -mtime -n +n 按照文档更改时间查找。-n 指距离现在时间n天以内;+n n天以外 -nogroup 查找没有有效所属用户组的所有文件(/etc/passwd里不存在的) -nouser 查找没有有效所属用户的所有文件(/etc/passwd里不存在的) -newer file1 !file2 查找更改时间比file1新比file2旧的文档 -type 查找某一类型文档 b 块设备文档 d 目录 c 字符设备文档 P 管道文档 l 符号链接文档 f 普通文档 -size n[c] 查找文档长度为n块的文档 有[c]表示文档长度以字节计,+1000000c表示大于1M字节 -depth 查找时,首先查找当前目录文档,然后再在其子目录查找 -fstype 查找位于某一类型文档系统中的文档,文档系统类型可在/etc/fstab中找到 -mount 查找文档不跨越文档系统mount点 -follow 如碰到链接文档,则跟踪至链接所指向文档 -cpio 对匹配的文档使用cpio命令,将文档备份到磁带设备中 -print 将匹配的文档输出到标准输出 -exec 对匹配的文档执行所给的shell命令。形式为:command { } \;注意{ }和\;之间的空格 -ok 和-exec作用相同,但在执行每个命令之前都会给出提示用户
使用cpio选项 cpio命令可以用来向磁带设备备份文件或从中恢复文件。可以使用find命令在整个文件系统中(更多的情况下是在部分文件系统中)查找文件,然后用cpio命令将其备份到磁带上。 如果希望使用cpio命令备份/etc、/home和/apps目录中的文件,可以使用下面所给出的命令,不过要记住你是在文件系统的根目录下: $cd / $find etc home apps -depth -print |cpio -ivcdC65536 -o /dev/rmt0 在上面的例子中,应当注意到路径中缺少/。这叫作相对路径。之所以使用相对路径,是因为在从磁带中恢复这些文件的时候,可以选择恢复文件的路径。例如,可以将这些文件先恢复到另外一个目录中,对它们进行某些操作后,再恢复到原始目录中。如果在备份时使用了绝对路径,例如/etc,那么在恢复时,就只能恢复到/etc目录中去,别无其他选择。在上面的例子中,我告诉find命令首先进入/etc目录,然后是/home和/apps目录,先匹配这些目录下的文件,然后再匹配其子目录中的文件,所有这些结果将通过管道传递给cpio命令进行备份。 顺便说一下,在上面的例子中cpio命令使用了C65536选项,我本可以使用B选项,不过这样每块的大小只有512字节,而使用了C65536 选项后,块的大小变成了64K字节(65536/1024)。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。