在linux中find是用來(lái)查找文件的,下面我來(lái)給大家簡(jiǎn)單講幾個(gè)關(guān)于find文件查詢實(shí)例,希望對(duì)各位朋友會(huì)有所幫助,
Shell對(duì)find查詢文件操作實(shí)例linux操作系統(tǒng)
。例1
典型操作,遍歷目錄下所有js并用yuicompressor壓縮
代碼如下復(fù)制代碼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
執(zhí)行范例
在當(dāng)前目錄下找查找以.c的文件和目錄
代碼如下復(fù)制代碼find -name "*.c"
只在當(dāng)前目錄下找查找以.c的文件和目錄,子目錄不進(jìn)行查找。
代碼如下復(fù)制代碼find -maxdepth 1 -name "*.c"
在/home目錄查找文件類型為軟連接的文件和管道文件,并使用ls指令列出它們的詳細(xì)信息。
代碼如下復(fù)制代碼find /home -type p -o -type l |xargs ls -l
查找/home/mail目錄下有哪些子目錄。
代碼如下復(fù)制代碼find /home/mail -type d -print
在/home/目錄下查找1天前,后綴為.sh的文件。
代碼如下復(fù)制代碼find /home/ -ctime 1 -name "*.sh" -exec ls -l {} ;
在整個(gè)系統(tǒng)中查找,具有硬連接,且大于880KB的文件,并打印出來(lái)。
代碼如下復(fù)制代碼find / -type f ! -links 1 -size +880k -exec ls -lh {} ; 2>/dev/null
查找整個(gè)系統(tǒng)中具有setuid的可執(zhí)行文件,
電腦資料
《Shell對(duì)find查詢文件操作實(shí)例linux操作系統(tǒng)》(http://clearvueentertainment.com)。代碼如下復(fù)制代碼find / -perm 4755 -print 2>/dev/null|xargs ls -l查找整個(gè)系統(tǒng)中具有setuid的可執(zhí)行文件。忽略對(duì)/bin目錄的搜索。
代碼如下復(fù)制代碼find / -path "/bin" -prune -o -perm 4755 -print 2>/dev/null|xargs ls -l
在/home/目錄下查找更改時(shí)間在3日以內(nèi)的文件
代碼如下復(fù)制代碼find /home/logs -type f -mtime -3 -exec ls -l {} ;
在整個(gè)系統(tǒng)中查找屬性為755后綴為.sh或.php的文件,并避開/usr/bin、/bin、/usr/local/bin目錄。
代碼如下復(fù)制代碼find / -type f -perm 755 -a -name "*.php" -o -name "*.sh" -a ( -path /bin -o -path /usr/bin -o -path /usr/local/bin ) -prune
查找指定大小文件
例子:查找當(dāng)前目錄下文件大小為2048(2k)字節(jié)的文件
代碼如下復(fù)制代碼find ./ -size 4
或
find ./ -size 2048c
或
find ./ -size 2K
上述查找文件是等于指定大小的,那能不能查詢大于或小于某個(gè)指定值的文件呢,答案是肯定,例如:
查找大于2K的文件,+ 表示大于
代碼如下復(fù)制代碼find ./ -size +2048c查找小于2K的文件,- 表示小于
代碼如下復(fù)制代碼find ./ -size +2048c -type f注意:默認(rèn)單位是b,而它代表的是512字節(jié),所以2表示1K,1M則是2048,如果不想自己轉(zhuǎn)換,可以使用其他單位,如c、K、M等。