gpt4 book ai didi

linux - 如果父文件夹与 bash 同名,则移动子文件夹的内容

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:32 31 4
gpt4 key购买 nike

当执行 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 删除重复的子文件夹?

最佳答案

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

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

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com