>

와이즈 비즈가있다  다른 위치에 복사 할 디렉토리 및 파일을 선택하는 명령 ( find 사용) ). 내가 원하는 것은 --parents 가 출력하는 디렉토리입니다.  내용없이 복사되도록 명령합니다 (그러나 소유권과 모드는 동일해야 함).

find 를 제한 할 수 있습니다   find 가있는 파일에만  또는 -type f 기본 소유권 및 모드를 사용하여 필요한 경우 디렉토리가 작성됩니다. 내가 ! -type d 를 사용하면   -r 옵션 그런 다음 디렉토리는 올바른 소유권 및 모드뿐만 아니라 모든 파일과 함께 복사됩니다. 기본적으로 목록의 디렉토리에 내용이없는 디렉토리 메타 데이터 만 복사하려고합니다.

이것을 달성하는 방법?

cp
  • 답변 # 1

    내가 사용하는 가장 간단한 도구는 pax 입니다 -d 가 있기 때문에  디렉토리가 주어 졌을 때 재귀하지 말라고하는 옵션.

    디렉토리 만 복사하여 단계적으로 수행하려면 디렉토리가 복사되었는지 검증 할 수 있으므로 파일을 복사하지 않아도됩니다.

    find somewhere -type d | pax -wd  > archive.tar
    tar vtf archive.tar
    ( cd somewhere_else && tar xpf - ) < archive.tar
    
    

    만족하면, 아카이브 내용 (tar vxf archive.tar)의 중간 인쇄를 제거하고 중간 archive.tar 파일을 파이프로 교체 할 수 있습니다.

  • 답변 # 2

    GNU find 가있다 , 어쩌면

    find path/to/dir -type d -printf '%P\0' | 
      rsync -0av --files-from=- path/to/dir/ path/to/newdir/
    
    

    원하는 것을 할 것입니다 ( -0av 를 대체하여 테스트하십시오)   -0avn 와 함께 ).

    검색 기준에 따라 rsync 를 사용할 수 있습니다  적합한 필터와 함께 단독 전체 디렉토리 구조를 복사하려면

    rsync -avn -f'+ */' -f'- *' path/to/dir/ path/to/newdir/
    
    

    예 : Linux : rsync 복사 디렉토리 구조 트리 만 참조

관련 자료

  • 이전 centos - LVM 파일 시스템이 가득 찼습니다 무엇보다도 시스템을 업데이트 할 수 없습니다
  • 다음 apt - wireless-bcm43142-dkms-6205519 설치 중 오류 - linux-headers 종속성이 만족스럽지 않습니다