다음과 같은 파일 계층 구조가 있습니다.
dir
├── dirA
│ └── snapshot
│ └── subdir1
│ └── file1
└── dirB
└── snapshot
└── subdir2
└── file2
단일 명령으로 각 스냅샷/하위 디렉터리에서 스냅샷의 상위 디렉터리로 파일을 이동하고 싶습니다. 그것은 다음과 같습니다:
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