在执行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/