我有一个file.lst文件列表.
现在我想找到目录dir中超过7天的文件,除了file.lst文件中的所有文件.如何修改find命令或从文件中删除file.lst中的所有条目?
现在我想找到目录dir中超过7天的文件,除了file.lst文件中的所有文件.如何修改find命令或从文件中删除file.lst中的所有条目?
例:
file.lst:
a b c
执行:
find -mtime +7 -print > found.lst
found.lst:
a d e
所以我期望是:
d e
解决方法
通过grep -Fxvf管道找到命令:
find -mtime +7 -print | grep -Fxvf file.lst
标志是什么意思
-F,--fixed-strings Interpret PATTERN as a list of fixed strings,separated by newlines,any of which is to be matched. -x,--line-regexp Select only those matches that exactly match the whole line. -v,--invert-match Invert the sense of matching,to select non-matching lines. -f FILE,--file=FILE Obtain patterns from FILE,one per line. The empty file contains zero patterns,and therefore matches nothing.