文件夹组织

文件夹组织

我有几个文件夹(“亚马逊”,“尼日尔”,“莱茵河”,...)。在每个文件夹中我都有几个子文件夹(“gfdl”,“hadgem”,“ipsl”,...)。每个子文件夹由5个子文件夹组成(例如,在“amazon”中,子文件夹“gfdl”由5个子文件夹'amazon_gfdl'、'amazon_gfdl1'、...、'amazon_gfdl5'组成);其他子文件夹遵循相同的结构(例如,在“amazon”子文件夹“ipsl”中,由 5 个子文件夹“amazon_ipsl”、“amazon_ipsl1”、“amazon_ipsl2”、...直到“amazon_ipsl5”组成。我有大量文件夹因此我的问题如下:我如何组织每个文件夹和子文件夹,以便在每个子文件夹(“gfdl”,“hadgem”,“ipsl”,...)中,有4个新文件夹。创建目录(“1”、“2”、“3”、“4”),然后将文件夹例如“amazon_gfdl”(已存在于“gfdl”中)复制到每个新目录中,最后将“ amazon_gfdl1”被移动到新目录“1”,“amazon_gfdl2”被移动到新目录“2”,依此类推!我目前正在使用命令 cp 并在每个子文件夹中移动,但它并不真正有效,我可能需要额外的生命才能完成这样的任务!因此,非常感谢您的帮助或提示!

答案1

您可以编写一个小脚本来为您做到这一点,按照这些思路(根据需要进行调整,我不确定我的故事是否正确):

> cat tst.sh 
#!/bin/bash
for river in amazon niger rhine ; do
    for name in gfdl hadgem ipsl ; do
        for count in 1 2 3 4 ; do
            mkdir ${river}/${name}/${count}
            cp -a ${river}/${name}/${river}_${name} ${river}/${name}/${count}
            mv ${river}/${name}/${river}_${name}${count} ${river}/${name}/${count}
        done
    done
done

运行之前:

> find . | sort
.
./amazon
./amazon/gfdl
./amazon/gfdl/amazon_gfdl
./amazon/gfdl/amazon_gfdl1
./amazon/gfdl/amazon_gfdl2
./amazon/gfdl/amazon_gfdl3
./amazon/gfdl/amazon_gfdl4
./amazon/gfdl/amazon_gfdl5
...

结果:

> chmod u+x tst.sh
> ./tst.sh
> find . | sort
.
./amazon
./amazon/gfdl
./amazon/gfdl/1
./amazon/gfdl/1/amazon_gfdl
./amazon/gfdl/1/amazon_gfdl1
./amazon/gfdl/2
./amazon/gfdl/2/amazon_gfdl
./amazon/gfdl/2/amazon_gfdl2
./amazon/gfdl/3
./amazon/gfdl/3/amazon_gfdl
./amazon/gfdl/3/amazon_gfdl3
./amazon/gfdl/4
./amazon/gfdl/4/amazon_gfdl
./amazon/gfdl/4/amazon_gfdl4
./amazon/gfdl/amazon_gfdl
./amazon/gfdl/amazon_gfdl5
...

相关内容