파일이 있는 기존 트리에서 새로운 빈 디렉토리 트리 생성

파일이 있는 기존 트리에서 새로운 빈 디렉토리 트리 생성

많은 파일이 포함된 큰 디렉터리 트리가 있습니다.

새 위치에 디렉터리 구조를 다시 만들고 싶지만 파일은 제외하고 디렉터리만 다시 만들고 싶습니다.

cp의 매뉴얼 페이지를 확인했지만 도움이 될 주장이 보이지 않습니다.

답변1

rsync -av -f"+ */" -f"- *" /.../SOURCE /.../DESTINATION

답변2

find . -type d -exec mkdir -p ~/to/{} \;

이 질문에 대한 @whitequark의 답변에서 발췌:Mac OS X에서 파일을 복사하지 않고 디렉토리 구조 복사

답변3

tree또 다른 접근 방식 은 강력한 옵션을 기반으로 디렉토리 트리를 탐색하는 매우 편리한 방법을 사용하는 것입니다 . 디렉터리만, 빈 디렉터리 제외, 패턴이 있는 이름 제외, 패턴이 있는 이름만 포함 등의 옵션이 있습니다. 확인해보세요man tree

이점: 목록을 편집하거나 검토할 수 있습니다. 또는 스크립팅을 많이 수행하고 빈 디렉터리 배치를 자주 만드는 경우

접근하다: 를 사용하여 디렉터리 목록을 만들고 tree해당 목록을 인수 입력으로 사용합니다.mkdir

tree -dfi --noreport > some_dir_file.txt

-dfi디렉토리만 나열하고, 각 이름의 전체 경로를 인쇄하고, 트리가 들여쓰기 줄을 인쇄하지 않도록 합니다.

--noreport출력 파일에 보풀이 포함되지 않도록 트리 목록 끝에서 파일 및 디렉터리 보고서 인쇄를 생략합니다.

그런 다음 빈 디렉토리를 원하는 대상으로 이동하여 실행하십시오.

xargs mkdir < some_dir_file.txt

답변4

비슷한 요구에 부딪힌 것으로 이것을 발견했습니다. 충분히 새로운 버전의 rsync를 사용하는 것이 최선의 방법입니다.

최신 버전의 rsync가 없는 경우 다음 방법을 사용하세요.

find path/to/source -type -d -exec mkdir path/to/dest/'{}' \; -exec chown --reference='{}' path/to/dest/'{}' \; -exec chmod --reference='{}' path/to/dest/'{}' \;

(이것의 변형은 권한 미러링에 사용될 수 있습니다)

관련 정보