Bash

文件夾組織

  • August 2, 2015

我有幾個文件夾(“amazon”、“niger”、“rhine”、…)。在每個文件夾中,我都有幾個子文件夾(“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 並在每個子文件夾中移動,但它並不是很有效,我可能需要額外的生命來結束這樣的任務!因此,任何幫助或提示將不勝感激。非常感謝你!(已經存在於“gfdl”中)被複製到每個新目錄中,最後“amazon_gfdl1”移動到新目錄“1”,“amazon_gfdl2”移動到新目錄“2”,依此類推!我目前正在使用命令 cp 並在每個子文件夾中移動,但它並不是很有效,我可能需要額外的生命來結束這樣的任務!因此,任何幫助或提示將不勝感激。非常感謝你!(已經存在於“gfdl”中)被複製到每個新目錄中,最後“amazon_gfdl1”移動到新目錄“1”,“amazon_gfdl2”移動到新目錄“2”,依此類推!我目前正在使用命令 cp 並在每個子文件夾中移動,但它並不是很有效,我可能需要額外的生命來結束這樣的任務!因此,任何幫助或提示將不勝感激。非常感謝你!我目前正在使用命令 cp 並在每個子文件夾中移動,但它並不是很有效,我可能需要額外的生命來結束這樣的任務!因此,任何幫助或提示將不勝感激。非常感謝你!我目前正在使用命令 cp 並在每個子文件夾中移動,但它並不是很有效,我可能需要額外的生命來結束這樣的任務!因此,任何幫助或提示將不勝感激。非常感謝你!

你可以寫一個小腳本來為你做這件事,按照這些構想(根據需要調整,我不確定我的故事是否正確):

> 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
...

引用自:https://unix.stackexchange.com/questions/219747