在执行tar提取操作时,有时内容会直接提取到父文件夹中,这是很糟糕的,因为它们都是无序的。举例来说:

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的情况,是否有一种用bash自动删除复制子文件夹的方法?

最佳答案

计算目录中条目的数量(提示:dotglob(*)${#var[@]}),如果单个目录条目具有相同的名称,则复制属性并移动内容(注意,该目录中的某些内容可能也具有相同的名称),然后删除现在为空的目录。

关于linux - 如果父文件夹与bash同名,则移动子文件夹的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22107165/

10-16 22:25