在維護(hù)項(xiàng)目中,有時會指定都一些條件進(jìn)行過濾文件,并對該批文件進(jìn)行操作;這時我們將使用shell命令進(jìn)行操作;直接上代碼
#!/bin/sh#BEGIN #`find ./ ! -name "." -type d -prune -o -newermt '2001-01-01 00:00:00' ! -newermt '2019-01-01 00:00:00'`忽略所有的子目錄 files=`find ./ -path "./2*" -prune -o -type f -newermt '2001-01-01 00:00:00' ! -newermt '2019-01-01 00:00:00'` for i in $files do if [ -f $i ];then echo $i >> grepfiles.txt fi done#END
該程序?qū)@得該目錄下忽略子目錄(以2開頭的目錄)的所有2001-01-01 00:00:00到2019-01-01 00:00:00的所有文件,并輸入到grepfiles.txt的文件中。
如需要獲取所有的目錄包括子目錄下的文件,則
#!/bin/sh#BEGIN files=`find ./ -type f -newermt '2001-01-01 00:00:00' ! -newermt '2019-01-01 00:00:00'` for i in $files do #-f指的時文件,-d則代表目錄 if [ -f $i ];then echo $i >> grepfiles.txt fi done#END
轉(zhuǎn))find命令原理:從指定的起始目錄開始,遞歸地搜索其各個子目錄,查找滿足尋找條件的文件,并可以對其進(jìn)行相關(guān)的操作。
格式:find [查找目錄] [參數(shù)] [匹配模型]
多參數(shù)格式:find [查找目錄] [參數(shù)] [匹配模型] [參數(shù)] [匹配模型]
例如:
1、find . -name "*.sh"
查找在當(dāng)前目錄(及子目錄)下找以sh結(jié)尾的文件。
2、find . -perm 755
查找在當(dāng)前目錄(及子目錄)下找屬性為755的文件。
3、find -user root
查找在當(dāng)前目錄(及子目錄)下找屬主為root的文件。
4、find /var -mtime -5
查找在/var下找更改時間在5天以內(nèi)的文件。
5、find /var -mtime +3
查找在/var下找更改時間在3天以前的文件。
6、find /etc -type l
查找在/etc下查找文件類型為|的鏈接文件。
7、find . -size +1000000c
查找在當(dāng)前目錄(及子目錄)下查找文件大小大于1M的文件,1M是1000000個字節(jié)。
8、find . -perm 700 |xargs chmod 777
查找出當(dāng)前目錄(及子目錄)下所有權(quán)限為700的文件,并把其權(quán)限重設(shè)為777。
9、find . -type f |xargs ls -l
查找出文件并查看其詳細(xì)信息。
查找出文件并查看其詳細(xì)信息。
總結(jié)
以上所述是小編給大家介紹的Linux查找目錄下的按時間過濾的文件,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
新聞熱點(diǎn)
疑難解答
圖片精選