해당 디렉터리의 파일을 시스템의 다른 폴더에 복사하지 않고 디렉터리의 모든 폴더와 하위 폴더를 복사하는 방법

해당 디렉터리의 파일을 시스템의 다른 폴더에 복사하지 않고 디렉터리의 모든 폴더와 하위 폴더를 복사하는 방법

내 다운로드에는 약 500개의 폴더가 있습니다. 그 500개 폴더 중 대부분에는 다른 폴더도 있습니다. 이 다운로드 디렉터리의 폴더를 복사하고 싶습니다. 여기에는 폴더 내의 폴더가 포함됩니다.

최종 목표는 단일 파일 없이 약 500개의 폴더와 약 500개의 하위 폴더를 포함하는 새 디렉터리를 만드는 것입니다.

할 수 있나요? 테스트할 준비가 되었습니다.

답변1

당신이 원하는 것은 디렉토리 구조 복사라는 것입니다.rsync

rsync -av --include='*/' --exclude='*' ~/Downloads ~/dls/

또는

rsync -av -f"+ */" -f"- *" ~/Downloads ~/dls/

답변2

mtree훌륭한 도구입니다.

$ mkdir ~/newDir
$ mtree -cdp ~/Downloads | mtree -Up ~/newDir

첫 번째 호출은 ath 와 관련된 디렉터리 mtree c만 참조하는 사양을 만듭니다 . 이 출력은 업데이트의 상대 디렉터리 경로를 업데이트하는 두 번째 호출로 파이프됩니다 . 보다 구체적으로 이 경우 "업데이트"는 누락된 항목을 생성하는 것을 의미합니다. 생성된 사양에는 디렉터리만 포함되어 있으므로 디렉터리 구조만 생성됩니다.dp~/DownloadsmtreeU~/newDir~/Downloads

답변3

rsync엄청난 mtree! 불행히도 항상 사용할 수 있는 것은 아닙니다. 보다 이식 가능한 방법은 다음과 같습니다.

(cd ~/Downloads && find . -mindepth 1 -type d -print0) | (cd target_dir; xargs -0 mkdir -p)

관련 정보