Bash - 从子目录到父目录的 mv 目录

Bash - 从子目录到父目录的 mv 目录

我有目录~/Desktop/Projects。其中有 40 个子目录,我们称它们为AAA, BBB, CCC, etc.其中每个目录都有 4 个相同的目录dog, fish, bird, snake。其中每个文件都有 2000 个文件。我想将离散命名的文件从Projects/AAA/dog, fish, bird, snake移动到AAA,然后继续将BBB其各自的BBB/dog, fish, bird, snake文件移动到BBB所有 40 个子目录中。

我读到我应该将 shell 脚本保存在bin路径内的文件夹中。我是新手,没有任何指导,只是我在网上找到的。我创建了一个bin目录-- ~/Desktop/bin.我无法改变,.bashrc因为我是学生。 (而且,是的,我可能可以但不应该。)这是我尝试过的代码的一个版本:

#!/bin/bash 
cd ~/Desktop/Projects

for d in ~Desktop/Projects; do
    cd dog ;
    mv * .. ;
done

我添加了其他 3 个子目录,但暂时注释掉了。当我运行它时,它将所有AAA, BBB, CCC, etc目录发送到~/Desktop.我认为..代码只将文件发送到包含它所在目录的目录?

我认为我本质上是在说“对于cdAAA, BBB, CCC, etc中的所有目录 ( )到其所包含的目录,然后将内容移动到该目录的相应父目录”。这就是我想要的。Projectsdogdog

我也试过for d in ~Desktop/Projects/*/ ; do在这种情况下找不到dog目录。

我也尝试过for d in */ ; do,并且for d in /* ; do同样for dir in */ ; do的问题,找不到dog

谢谢。

相关内容