您好,登錄后才能下訂單哦!
怎么在Linux中查找目錄中按時間過濾的文件?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
在維護項目中,有時會指定都一些條件進行過濾文件,并對該批文件進行操作;這時我們將使用shell命令進行操作;直接上代碼
#!/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
該程序將會獲得該目錄下忽略子目錄(以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
轉)find命令原理:從指定的起始目錄開始,遞歸地搜索其各個子目錄,查找滿足尋找條件的文件,并可以對其進行相關的操作。
格式:find [查找目錄] [參數] [匹配模型]
多參數格式:find [查找目錄] [參數] [匹配模型] [參數] [匹配模型]
例如:
1、find . -name "*.sh"
查找在當前目錄(及子目錄)下找以sh結尾的文件。
2、find . -perm 755
查找在當前目錄(及子目錄)下找屬性為755的文件。
3、find -user root
查找在當前目錄(及子目錄)下找屬主為root的文件。
4、find /var -mtime -5
查找在/var下找更改時間在5天以內的文件。
5、find /var -mtime +3
查找在/var下找更改時間在3天以前的文件。
6、find /etc -type l
查找在/etc下查找文件類型為|的鏈接文件。
7、find . -size +1000000c
查找在當前目錄(及子目錄)下查找文件大小大于1M的文件,1M是1000000個字節。
8、find . -perm 700 |xargs chmod 777
查找出當前目錄(及子目錄)下所有權限為700的文件,并把其權限重設為777。
9、find . -type f |xargs ls -l
查找出文件并查看其詳細信息。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。