다른 파일 시스템에서 복사하는 것을 방지하는 "cp -a" 명령의 변형이 있습니까?

다른 파일 시스템에서 복사하는 것을 방지하는 "cp -a" 명령의 변형이 있습니까?

/data/something다음과 같은 하위 디렉터리가 있는 디렉터리가 있다고 가정해 보겠습니다 .

/data/something/iowa
/data/something/wyoming
/data/something/burkinafaso
/data/something/slovenia

4개의 하위 디렉터리 모두 콘텐츠가 있습니다. 마운트 지점이 있고 burkinafaso아무것도 없습니다 . 모든 하위 트리와 함께 재귀적으로 복사 되고 비어 있는 방식으로 디렉토리 구조를 복사하고 싶습니다 . 및 와 달리 그러한 스위치는 없는 것 같습니다. 내가 하고 싶은 일을 하는 가장 좋은 방법은 무엇인가?sloveniaiowawyomingiowawyomingburkinafasosloveniacpdu -xfind -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)

그리고 소스와 대상 모두 로컬이 될 수 있습니다. 내가 알 수 있는 한, rsyncs --archive옵션은 s 와 일치하는 것으로 보이며 보유할 자격이 있는 거의 모든 것을 보유합니다.cp

관련 정보