![여러 디렉터리의 여러 파일을 소스 상대 대상으로 이동](https://rvso.com/image/109260/%EC%97%AC%EB%9F%AC%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%9D%98%20%EC%97%AC%EB%9F%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%86%8C%EC%8A%A4%20%EC%83%81%EB%8C%80%20%EB%8C%80%EC%83%81%EC%9C%BC%EB%A1%9C%20%EC%9D%B4%EB%8F%99.png)
다음과 같은 파일 계층 구조를 가집니다.
dir
├── dirA
│ └── snapshot
│ └── subdir1
│ └── file1
└── dirB
└── snapshot
└── subdir2
└── file2
단일 명령으로 스냅샷의 상위 디렉토리를 수행하여 각 snapshot/subdir 디렉토리에서 파일을 이동하고 싶습니다. 그것은 다음과 같습니다:
dir
├── dirA
│ └── file1
│ └── snapshot
│ └── subdir1
└── dirB
└── file2
└── snapshot
└── subdir2
시도해 보았지만 mv dir/*/snapshot/*/* ../../
대상 부분이 ../../
작업 디렉토리와 관련되어 있기 때문에 분명히 작동하지 않습니다.
bash 명령으로 가능합니까 (bash 스크립트 한 줄도 작성한 적이 없기 때문에)?
답변1
@Don_Christ의 예리한 관찰을 바탕으로 이 답변을 편집하여 하위 쉘을 저장했습니다.
for i in dir/*/snapshot; do
mv "$i"/*/* "$i"/..
done