*每个文件夹都有另一个文件夹,我需要将其中的所有内容向上移动一个文件夹然后删除:
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