shell编程笔记2----find和xargs
时间:2006-09-23 来源:fdmtdmcdm
第二章 find和xargs
find遍利目录或文件系统查找某些文件或目录
语法:
find pathname -options [-print -exec -ok]
pathname是路径
-print 将匹配的文件输出的标准输出
-exec find命令对匹配的文件执行该参数所给出的shell命令,命令形式为'command' {} \;,注意{}和\;之间有空格。
-ok 和-exec一样,不过更为安全,执行一个命令前会给出提示。 -options选项有很多参数,比如:
-name按文件名查找文件
-perm按文件权限查找文件
-prune不在当前指定的目录找,如果同时使用了-depth,则-prune被忽略
-user按文件属主查找
-group按文件所属的组查找
-mtime -n +n按文件更改时间查找,-n文件更改时间距现在n天内,+n文件更改时间距现在n天前
-nogroup查找无效所属组的文件
-nouser查找无效属主的文件
-newer file1!file2查找更改时间比file1新但比file2旧的文件
-type查找某一类型的文件
文件类型有d(目录文件),l(符号链接文件),b(块设备文件),c(字符设备文件),p(命名管道文件)。f(普通文件)
-size n[c]查找文件长度为n块的文件,带有c时表示文件长度以字节记
-depth查找文件时,先查找当前目录中的文件,再在其子目录中查找
-mount查找文件时不跨文件系统的mount点
-follow如果遇到符号链接文件就跟踪到链接所指向的文件
-cpio对匹配的我文件备份到磁带中
查找某种文件名模式匹配时用双引号引起来
find ~ "*.txt" -print
find . "*.txt" -print 文件权限模式
find . perm 755 -print 忽略某个目录
find /app -name "/app/bin" -prune -o -print 按照文件属主查找
find . -user dal -print
查找属主帐号已经删除的文件
find /home -nouser -print -group同上 按更改时间查找
更改时间在2天内的
find ~ -mtime -2 -print
更改时间在3天前的
find ~ -mtime +3 -print find ~ -newer test1.txt!test2.txt -exec ls -l {} \;
type选项,可以使用!排除
find ~ -type d -print size选项
find ~ -size +10000c -print depth选项
find /etc "test.txt" -depth -print mount选项 find ~ -name "abc.txt" -mount -print 删除log目录下三天前的文件
find log -mtime +3 -exec rm {} \;
xargs命令同exec,但是是分批处理,不会出现溢出错误 find / -type f |xargs file
语法:
find pathname -options [-print -exec -ok]
pathname是路径
-print 将匹配的文件输出的标准输出
-exec find命令对匹配的文件执行该参数所给出的shell命令,命令形式为'command' {} \;,注意{}和\;之间有空格。
-ok 和-exec一样,不过更为安全,执行一个命令前会给出提示。 -options选项有很多参数,比如:
-name按文件名查找文件
-perm按文件权限查找文件
-prune不在当前指定的目录找,如果同时使用了-depth,则-prune被忽略
-user按文件属主查找
-group按文件所属的组查找
-mtime -n +n按文件更改时间查找,-n文件更改时间距现在n天内,+n文件更改时间距现在n天前
-nogroup查找无效所属组的文件
-nouser查找无效属主的文件
-newer file1!file2查找更改时间比file1新但比file2旧的文件
-type查找某一类型的文件
文件类型有d(目录文件),l(符号链接文件),b(块设备文件),c(字符设备文件),p(命名管道文件)。f(普通文件)
-size n[c]查找文件长度为n块的文件,带有c时表示文件长度以字节记
-depth查找文件时,先查找当前目录中的文件,再在其子目录中查找
-mount查找文件时不跨文件系统的mount点
-follow如果遇到符号链接文件就跟踪到链接所指向的文件
-cpio对匹配的我文件备份到磁带中
查找某种文件名模式匹配时用双引号引起来
find ~ "*.txt" -print
find . "*.txt" -print 文件权限模式
find . perm 755 -print 忽略某个目录
find /app -name "/app/bin" -prune -o -print 按照文件属主查找
find . -user dal -print
查找属主帐号已经删除的文件
find /home -nouser -print -group同上 按更改时间查找
更改时间在2天内的
find ~ -mtime -2 -print
更改时间在3天前的
find ~ -mtime +3 -print find ~ -newer test1.txt!test2.txt -exec ls -l {} \;
type选项,可以使用!排除
find ~ -type d -print size选项
find ~ -size +10000c -print depth选项
find /etc "test.txt" -depth -print mount选项 find ~ -name "abc.txt" -mount -print 删除log目录下三天前的文件
find log -mtime +3 -exec rm {} \;
xargs命令同exec,但是是分批处理,不会出现溢出错误 find / -type f |xargs file
相关阅读 更多 +