有时在执行tar解压操作时,文件会直接解压到父文件夹中,这样很糟糕,因为它们会变得杂乱无序。例如:
解决方法是创建一个专门用于tar.gz的文件夹。例如:
为了安全地提取它们,但这样做会得到像这样的东西:
tar -xzf foo1.tar.gz
提取:
./file1
./file2
./file3
解决方法是创建一个专门用于tar.gz的文件夹。例如:
tar -C foo -xzf foo1.tar.gz
提取:
./foo1/file1
./foo1/file2
./foo1/file3
如果我有很多.tar.gz文件需要提取,我只需要执行以下操作:
find -name \*.tar.gz | xargs -n 1 basename -s .tar.gz | xargs -I {} tar -C {} -xzf {}.tar.gz
为了安全地提取它们,但这样做会得到像这样的东西:
./foo3/foo3/file1
./foo3/foo3/file2
./foo3/foo3/file3
有没有一种自动的方式可以使用bash删除重复的子文件夹,以适应需要这样做的情况?
foo3
是从哪里来的? - undefinedbasename
会移除目录信息。 - undefinedtar -t foo.tar.gz
命令,然后检查第一个文件名是否以./
开头,只有在这种情况下才使用-C
参数。 - undefined