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                         

      查找出文件並查看其詳細信息。

 

               

      查找出文件並查看其詳細信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM