Tar*_*ski 4 linux command-line archiving
有时,我将存档提取到错误的文件夹中,并想移动或删除新提取的文件。
通过命令行执行此操作的最简单方法是什么?我可以以某种方式搜索比提取时间更新的所有文件并将其传送到 rm 中吗?
谢谢
Ann*_*rom 12
编辑:如评论中所述,tar修改提取文件的 mtime 和 ctime 以匹配存档中的日期,因此除非-m在提取期间使用该标志,否则第一种方法将不起作用。最后一种方法是最佳的,但如果文件名冲突,可能会导致删除您想要的文件。
find支持一个-newer file标志,指定它应该找到比file更新的文件。touch有一个 -t 参数来修改文件的访问/修改时间。因此,要修复晚上 7:25:30 左右发生的 oops:
$ tar xzf whoops.tar.gz
$ touch -t 200909261925.30 whoops-timestamp
$ find . -newer whoops-timestamp
Run Code Online (Sandbox Code Playgroud)
如果您确信显示了正确的文件:
$ find . -newer whoops-timestamp -print0 | xargs -0 rm -v
Run Code Online (Sandbox Code Playgroud)
另一种方法是删除您刚刚提取的存档中列出的所有文件:
$ tar tfz whoops.tar.gz | xargs rm -v
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11895 次 |
| 最近记录: |