我只是解压缩了一个归档文件,该归档文件将杂乱的文件生成到我的整洁目录中。例如:
user@comp:~/tidy$ tar xvf myarchive.tar
file1
file2
dir1/
dir1/file1
dir1/subdir1/
dir1/subdir1/file1
dir2/
dir2/file1
...
我期望tar文件可以被组织在一个文件夹(即myarchive/
)中,但事实并非如此!现在,我已经有190个文件和目录以数字方式被发送到一个有组织的目录中。这些未压缩的文件需要清理。
有什么方法可以“撤消”此操作并删除从此存档中提取的文件和目录?
感谢您下面的出色回答。总而言之,以下是两个步骤的工作:(1)删除文件,(2)以相反的打包顺序删除空目录结构(首先删除外部目录):
tar tf myarchive.tar | xargs -d'\n' rm
tar tf myarchive.tar | tac | xargs -d'\n' rmdir
而且更加安全,可以通过echo
在之后附加来预览命令的预览版xargs
。
xargs
(tac
而不sort -r
只是化妆品)一起使用,但是您接受了流程替代的答案,正如您在评论中所述,该方法不适合您?另外,xargs -d'\n'
如果您想为将来的用户进行总结,请在您的帖子中进行切换,这样他们就不会被文件名中的空格所困扰。
-d'\n'
,并且经过进一步分析,您的答案实际上更接近于我所使用的答案。
-d'\n'
在于以下事实:如果您不告诉您xargs
在新行(这是您要提供的内容)上而是在空格处拆分参数,则使用名称folder1/some file
将读取为folder1/some
和name
。