循环以在每个子文件夹中执行一个命令



*每个文件夹都有另一个文件夹,我需要将其中的所有内容向上移动一个文件夹然后删除:

Main_folder
-->DePreter.Jonas
-->Huistaak1-HelloWorld_Jonas.DePreter.s.ua_poging_2019-11-12
--> (Files and folders name doesn't matter)
-->(another_name)
-->Huistaa1-HelloWorld_(name)...
--> more files
...

因此,我需要的是访问每个名称文件夹(如"DePreter.Jonas"(,并从Huistaak1 HelloWorld中移动所有文件。。。到它所在的名称文件夹,然后删除Huistaak1…文件夹

我已经写了这个,但这太长了,我希望它能循环使用。

cd DePreter.Jonas
mv */* */.* . 
find . -type d -name "Huistaak1*" -delete
cd ..
cd Feremans.Len
mv */* */.* . 
find . -type d -name "Huistaak1*" -delete
cd ..
cd Hofkens.Peter
mv */* */.* . 
find . -type d -name "Huistaak1*" -delete
cd ..
cd Janssens.Jan
mv */* */.* . 
find . -type d -name "Huistaak1*" -delete
cd ..
cd Peters.Jolien
mv */* */.* . 
find . -type d -name "Huistaak1*" -delete
cd ..
cd VanHoof.Sarah
mv */* */.* . 
find . -type d -name "Huistaak1*" -delete
cd ..

这可能就是您想要的:

cd /path/to/Main_folder || exit
for dir in */*/
do
cd "$dir" || exit
mv ./* ..
cd - >/dev/null || exit
rmdir "$dir"
done

或者,在循环体内没有cd的更简洁的方法:

cd /path/to/Main_folder || exit
for dir in */*/
do
mv "$dir"* "${dir%%/*}"
rmdir "$dir"
done

相关内容

  • 没有找到相关文章

最新更新