我有目录~/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
中的所有目录 ( )到其所包含的目录,然后将内容移动到该目录的相应父目录”。这就是我想要的。Projects
dog
dog
我也试过for d in ~Desktop/Projects/*/ ; do
在这种情况下找不到dog
目录。
我也尝试过for d in */ ; do
,并且for d in /* ; do
同样for dir in */ ; do
的问题,找不到dog
。
谢谢。