这是一个非常烦人的现象。有时,我会下载一个存档 ( tar.gz, tar.bz2, zip, rar, etc
) 并tar xf [file]
在该文件的目录中运行(或类似)。在极少数情况下,所有文件都会提取到当前工作目录而不是子目录中。这可能会导致数百个文件和数百个模式无法简单地使用模式匹配解决方案删除。
有没有办法获取存档的文件内容,然后删除当前工作目录中该列表上的所有文件?
答案1
您可以列出存档的内容,然后使用 xargs 将列表传递给 rm
tarball 示例(无需rm
第一个即可测试):
tar tfz archive.tar.gz | xargs rm -rf
为了。压缩文件,替换tar tfz archive.tar.gz
为unzip -Z1 file.zip
(或等效的zipinfo -1 file.zip
)(参考:https://unix.stackexchange.com/a/128304/368910)
答案2
假设所有文件都是在同一日期/时间提取的,您可以编写一行代码并将正则表达式传递给rm
.