在維護項目中,有時會指定都一些條件進行過濾文件,並對該批文件進行操作;這時我們將使用shell命令進行操作;直接上代碼 該程式將會獲得該目錄下忽略子目錄(以2開頭的目錄)的所有2001-01-01 00:00:00到2019-01-01 00:00:00的所有文件,並輸入到grepfiles.txt ...
在維護項目中,有時會指定都一些條件進行過濾文件,並對該批文件進行操作;這時我們將使用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
查找出文件並查看其詳細信息。
查找出文件並查看其詳細信息。