在linux中find是用来查找文件的,下面我来给大家简单讲几个关于find文件查询实例,希望对各位朋友会有所帮助,
例1
典型操作,遍历目录下所有js并用yuicompressor压缩代码如下复制代码
for i in `find asset/v2 -name "*.js"`;
do
echo "compress $i"
java -jar tool/yuicompressor.jar --charset=utf8 -o $i $i --nomunge
done
例2
执行范例
在当前目录下找查找以.c的文件和目录代码如下复制代码
find -name "*.c"
只在当前目录下找查找以.c的文件和目录,子目录不进行查找。代码如下复制代码
find -maxdepth 1 -name "*.c"
在/home目录查找文件类型为软连接的文件和管道文件,并使用ls指令列出它们的详细信息。代码如下复制代码
find /home -type p -o -type l |xargs ls -l
查找/home/mail目录下有哪些子目录。代码如下复制代码
find /home/mail -type d -print
在/home/目录下查找1天前,后缀为.sh的文件。代码如下复制代码
find /home/ -ctime 1 -name "*.sh" -exec ls -l {} ;
在整个系统中查找,具有硬连接,且大于880KB的文件,并打印出来。代码如下复制代码
find / -type f ! -links 1 -size +880k -exec ls -lh {} ; 2>/dev/null
查找整个系统中具有setuid的可执行文件,Shell对find查询文件操作实例linux操作系统》(https://www.unjs.com)。代码如下复制代码find / -perm 4755 -print 2>/dev/null|xargs ls -l
查找整个系统中具有setuid的可执行文件。忽略对/bin目录的搜索。代码如下复制代码
find / -path "/bin" -prune -o -perm 4755 -print 2>/dev/null|xargs ls -l
在/home/目录下查找更改时间在3日以内的文件代码如下复制代码
find /home/logs -type f -mtime -3 -exec ls -l {} ;
在整个系统中查找属性为755后缀为.sh或.php的文件,并避开/usr/bin、/bin、/usr/local/bin目录。代码如下复制代码
find / -type f -perm 755 -a -name "*.php" -o -name "*.sh" -a ( -path /bin -o -path /usr/bin -o -path /usr/local/bin ) -prune
查找指定大小文件
例子:查找当前目录下文件大小为2048(2k)字节的文件代码如下复制代码
find ./ -size 4
或
find ./ -size 2048c
或
find ./ -size 2K
上述查找文件是等于指定大小的,那能不能查询大于或小于某个指定值的文件呢,答案是肯定,例如:
查找大于2K的文件,+ 表示大于代码如下复制代码find ./ -size +2048c
查找小于2K的文件,- 表示小于代码如下复制代码find ./ -size +2048c -type f
注意:默认单位是b,而它代表的是512字节,所以2表示1K,1M则是2048,如果不想自己转换,可以使用其他单位,如c、K、M等。