我有几个文件夹(“亚马逊”、“尼日尔”、“莱茵河”……)。在他们每个人里面我有几个子文件夹(“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 并在每个子文件夹中移动,但它并不是很有效,我可能需要额外的生命来结束这样的任务!因此,任何帮助或提示将不胜感激。非常感谢你!
您可以运行此脚本,它只会回显命令。当它执行您想要的操作时,将其替换为
dont=echo
iedont=
nothing。你应该尝试写类似这样的东西:
我没有对此进行测试,并且不建议您在测试之前运行它。由于运行的 bash 版本,一些 mv 标志在 Mac OSX 上不起作用——但它应该在 Ubuntu 上起作用。
再次 - 弄乱上面的代码,直到它做你想做的事 - 你可能想研究 bash for 循环,或者可能使用
find
命令在一行中执行类似的代码块。相关:如何通过命令行重命名目录?