| folderA1 | fileA11, fileA12, ...
folderA | folderA2 | fileA21, fileA22...
| ... | ...
다음과 같이 표현하여 복사하고 싶습니다.
| folderA1 | folderA11, folderA12, ...
folderB | folderA2 | folderA21, folderA22, ...
| ... | ...
원본 폴더 A(및 해당 구조)는 그대로 유지됩니다(변경되지 않음).
나는폴더(폴더) B는 폴더 자체를 제외한 (폴더) A의 모든 파일을 의미합니다. 또한 원본 폴더(A)의 디렉터리 구조를 유지하고 싶습니다.
사용이 문제위 빌드를 달성할 수 있지만 폴더 A 자체가 포함되어 있습니다.
find source/. -type d -exec mkdir -p dest/{} \; \
-o -type f -exec mkdir -p dest/{} \;
좋다:
| | folderA1 | folderA11, folderA12, ...
folderB | folderA | folderA2 | folderA21, folderA22, ...
| | ...
답변1
거기에서 cd
들어가서 folderA
다음 명령을 실행할 수 있습니다.
cd folderA
find . -type d -o -type f -exec bash -c '
for path; do mkdir -p "/path/to/folderB/${path/file/folder}"; done
' bash {} +
매개변수 확장은 ${path/file/folder}
각각 fileXY
의 이름을 folderXY
.
각 폴더에 파일이 포함되어 있으면 해당 파일을 삭제할 수 있습니다 -type d -o
.