/data/something
다음과 같은 하위 디렉터리가 있는 디렉터리가 있다고 가정해 보겠습니다 .
/data/something/iowa
/data/something/wyoming
/data/something/burkinafaso
/data/something/slovenia
4개의 하위 디렉터리 모두 콘텐츠가 있습니다. 마운트 지점이 있고 burkinafaso
아무것도 없습니다 . 모든 하위 트리와 함께 재귀적으로 복사 되고 비어 있는 방식으로 디렉토리 구조를 복사하고 싶습니다 . 및 와 달리 그러한 스위치는 없는 것 같습니다. 내가 하고 싶은 일을 하는 가장 좋은 방법은 무엇인가?slovenia
iowa
wyoming
iowa
wyoming
burkinafaso
slovenia
cp
du -x
find -xdev
답변1
GNU Coreutils(대부분의 Linux 배포판)가 있는 시스템에서 이 cp
명령에는 -x
.
cp 매뉴얼 페이지에서:
-x, --one-file-system
답변2
rsync
가지다
-x, --one-file-system don't cross filesystem boundaries
-x, --a 파일 시스템
이는 반복 시 파일 시스템 경계를 넘지 않도록 rsync에 지시합니다. 이는 여러 파일 시스템에서 복사할 항목을 지정하는 사용자의 능력을 제한하지 않으며, 사용자가 지정한 각 디렉터리의 계층 구조 내에서 rsync가 반복되고, 삭제 중에 수신 측에서도 유사한 반복이 수행된다는 점만 제한됩니다. 또한 rsync는 동일한 장치의 "바운드" 마운트를 동일한 파일 시스템에 있는 것처럼 처리한다는 점을 기억하십시오.
이 옵션을 반복하면 rsync는 복제본의 모든 마운트 지점 디렉터리를 무시합니다. 그렇지 않으면, 발견된 각 마운트 지점에 빈 디렉터리가 포함됩니다(기본 마운트 지점 디렉터리의 속성에 액세스할 수 없으므로 탑재된 디렉터리의 속성 사용).
rsync가 심볼릭 링크를 축소하라는 지시를 받으면(--copy-links 또는 --copy-unsafe-links를 통해) 다른 장치의 디렉터리에 대한 심볼릭 링크가 마운트 지점으로 처리됩니다. 비디렉토리에 대한 기호 링크는 이 옵션의 영향을 받지 않습니다.
(출처: man rsync)
그리고 소스와 대상 모두 로컬이 될 수 있습니다. 내가 알 수 있는 한, rsync
s --archive
옵션은 s 와 일치하는 것으로 보이며 보유할 자격이 있는 거의 모든 것을 보유합니다.cp