작은 파일이 많은 폴더 A가 있습니다. 상위 폴더 내에는 다른 파일을 포함하는 많은 폴더가 있습니다. 이제 폴더 A에는 다른 폴더와 이름이 같은 파일이 몇 개 있지만 끝에도 .xmp가 있습니다.
현재 구조는 다음과 같습니다.
- ~/A/foo.xmp
- ~/A/bar.xmp
- ~/폴더1/foo
- ~/폴더2/열
이것이 내가 원하는거야:
- ~/폴더1/foo
- ~/folder1/foo.xmp
- ~/폴더2/열
- ~/folder2/bar.xmp
상위 디렉토리(해당 파일은 foo)에서 foo.xmp에 해당하는 파일을 찾아 해당 파일을 그곳으로 이동하려면 어떻게 해야 합니까?
현재 디렉터리의 모든 파일을 통과하도록 이것을 루프에 어떻게 넣나요?
답변1
for dir in folder*/
do
for f in "$dir"*
do
base=${f#$dir}
[ -f "A/$base.xmp" ] && mv "A/$base.xmp" "$dir"
done
done
답변2
다음을 수행할 수 있습니다.
#Assuming there are N folders folder1,folder2...folderN
for folder in folder*
do
cd $folder
for file in *
do
#if file with .xmp extension exists in ~/A folder
[[ -f $file ]] && [[ -f ~/A/$file.xmp ]] && mv ~/A/$file.xmp .
done
cd ..
done