find命令选项
find命令有很多选项或表达式,每一个选项前面跟随一个横杠-。让我们先来看一下该命令的主要选项,然后再给出一些例子。
-name按照文件名查找文件。 find /shell -name abc.txt
-perm按照文件权限来查找文件。 [root@limit /]# find /shell/ -perm 777
-prune使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用了-depth选项,那么-prune选项将被find命令忽略。
-user按照文件属主来查找文件。 [root@limit /]# find /home/ -user deng1
-group按照文件所属的组来查找文件。 [root@limit /]# find /home/ -group root
-mtime-n+n按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。Find命令还有-atime和-ctime选项,但它们都和-mtime选项相似,所以我们在这里只介绍-mtime选项。
-nogroup查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newerfile1!file2查找更改时间比文件file1新但比文件file2旧的文件。
-type查找某一类型的文件,诸如:
b-块设备文件。
d-目录。 [root@limit /]# find /home/ -type d
c-字符设备文件。
p-管道文件。
l-符号链接文件。
f-普通文件。
-sizen[c]查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
[root@limit /]# find /shell/ -perm 777 | xargs ls -l
-rwxrwxrwx. 1 root root 34 2月 28 22:56 /shell/array.sh
-rwxrwxrwx. 1 root root 219 3月 1 01:26 /shell/function.sh
-rwxrwxrwx. 1 root root 110 3月 4 22:40 /shell/panduan.sh
-rwxrwxrwx. 1 root root 180 3月 1 19:45 /shell/ping.sh
-rwxrwxrwx. 1 root root 141 3月 4 19:14 /shell/sum.sh
-rwxrwxrwx. 1 root root 102 3月 4 23:06 /shell/tar.sh
-rwxrwxrwx. 1 root root 167 3月 4 21:55 /shell/touchcp.sh
-rwxrwxrwx. 1 root root 386 2月 28 23:28 /shell/web.sh
附加:Linux下xargs命令详解
xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,下面是一些如何有效使用xargs 的实用例子。
1. 当你尝试用rm 删除太多的文件,你可能得到一个错误信息:/bin/rm Argument list too long. 用xargs 去避免这个问题
find ~ -name ‘*.log’ -print0 | xargs -0 rm -f