
다음과 같은 파일 계층 구조를 가집니다.
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