![폴더 자체가 아닌 폴더의 각 파일에 대한 폴더를 만듭니다.](https://linux55.com/image/160151/%ED%8F%B4%EB%8D%94%20%EC%9E%90%EC%B2%B4%EA%B0%80%20%EC%95%84%EB%8B%8C%20%ED%8F%B4%EB%8D%94%EC%9D%98%20%EA%B0%81%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EB%8C%80%ED%95%9C%20%ED%8F%B4%EB%8D%94%EB%A5%BC%20%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4..png)
| 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
.