有时我会将档案解压到错误的文件夹中,然后想移动或删除新解压的文件。
通过命令行执行此操作的最简单方法是什么?我可以以某种方式搜索比提取时间更新的所有文件并将其导入 rm 吗?
谢谢
答案1
编辑:正如评论中所述,tar
修改提取文件的 mtime 和 ctime 以匹配存档中的日期,因此除非在提取过程中使用了标志,否则第一种方法将不起作用-m
。最后一种方法是最佳的,但如果文件名冲突,可能会导致删除您想要的文件。
find
支持-newer
file
标志,指定它应该查找比文件.touch
有一个 -t 参数,用于修改文件的访问/修改时间。因此,要修复下午 7:25:30 左右发生的错误:
$ tar xzf whoops.tar.gz
$ touch -t 200909261925.30 whoops-timestamp
$ find . -newer whoops-timestamp
如果您确信显示的是正确的文件:
$ find . -newer whoops-timestamp -print0 | xargs -0 rm -v
另一种方法是删除刚刚提取的档案中列出的所有文件:
$ tar tfz whoops.tar.gz | xargs rm -v
答案2
另一种方法是使用 find:
$ find "/path/to_clean/" -type f -mtime +30 -print0 | xargs -0 rm -f
其中 +30 是您希望保留的天数。