在維護(hù)項目中,有時會指定都一些條件進(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ù)大家的!
您可能感興趣的文章:- Linux下如何高效切換目錄的方法
- linux shell 中判斷文件、目錄是否存在的方法
- Linux shell 提取文件名和目錄名的方法
- 如何更改Linux(CentOS)系統(tǒng)下的MySQL數(shù)據(jù)庫目錄位置
- Linux系統(tǒng)中查找正在運(yùn)行的nginx目錄
- Linux 中批量提取文件夾下所有目錄及文件名稱
- 在 Linux 中不使用 CD 命令進(jìn)入目錄/文件夾的方法
- Linux目錄切換實現(xiàn)代碼案例