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)。
转载于:https://blog.51cto.com/happyland/710341