여러 디렉터리의 여러 파일을 소스 상대 대상으로 이동

여러 디렉터리의 여러 파일을 소스 상대 대상으로 이동

다음과 같은 파일 계층 구조를 가집니다.

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

관련 정보