因此,我希望以递归方式搜索具有数千个文件夹的目录以获取特定文件扩展名,并获取添加日期,然后按特定年份过滤。下面的代码有效,但有没有办法可以转换为单行?
获取以xml&结尾的所有文件写入tmp.txt
find . -name "*xml" >> tmp.txt
获取权限信息& tmp.txt
中所有这些文件的时间戳信息foreach i ( ` cat tmp.txt ` )
ls -ltrh $i >> tmp2.txt
end
第8列包含日期作为年份,因此请获取年份大于特定2014年的所有文件...
awk '$8 >=2014' tmp2.txt >> tmp3.txt
答案 0 :(得分:5)
试试这个:
find . -type f -name '*xml' -newermt "2014-01-01" -ls
来自man find
:
-newerXY reference
Succeeds if timestamp X of the file being considered is newer
than timestamp Y of the file reference. The letters X and Y
can be any of the following letters:
a The access time of the file reference
B The birth time of the file reference
c The inode status change time of reference
m The modification time of the file reference
t reference is interpreted directly as a time
答案 1 :(得分:1)
我会在bash shell中做些什么:
find . -name '*xml' -printf '%TY %p\n' | awk '$1 >= 2014 {$1=""; print}'
这只是一个例子,根据您的需要调整数学...
另一种解决方案:
DATETIME