![MacOS X의 경우 cp --reflink=auto](https://linux55.com/image/94936/MacOS%20X%EC%9D%98%20%EA%B2%BD%EC%9A%B0%20cp%20--reflink%3Dauto.png)
cp --reflink=auto
MacOS에 대해 다음 출력이 표시됩니다.
cp: 잘못된 옵션 -- -
HFS는 기록 중 복사 또는 중복 제거를 지원합니까? HFS COW 대용량 파일을 사용하는 방법은 무엇입니까?
답변1
Apple의 새로운 APFS 파일 시스템은 쓰기 중 복사를 지원합니다. CoW는 사용 가능한 Finder 복사 작업과 cp -c
명령줄에서 사용될 때 자동으로 활성화됩니다.
불행하게도 는 (not ) cp -c
과 동일하며 기록 중 복사가 불가능할 때 실패합니다.cp --reflink=always
auto
cp: somefile: clonefile failed: Operation not supported
나는 그 행동을 얻을 수있는 방법을 모릅니다 auto
. 자동 대체 기능을 사용하여 쉘 스크립트나 함수를 만들 수 있습니다.알라
cpclone() { cp -c "$@" || cp "$@"; }
그러나 모든 극단적인 경우에 완전히 신뢰할 수 있도록 만드는 것은 어렵습니다.
답변2
2021년 11월 업데이트: 이 답변은 다가오는 coreutils 변경으로 인해 오래되었습니다. reflink=auto는 항상 기본값입니다.25725f9(coreutils 9.0). APFS 클론은 트리에서 다음과 같이 커밋됩니다.5e36c0c그리고 coreutils 9.1에 나타나야 합니다.
2019년 11월 원본 게시물: 본인이 작성패치(메일링 리스트--reflink
) macOS > 10.12를 지원하는 GNU coreutils의 경우. 예, --reflink=auto
적어도 제가 측정한 타이밍에 따르면 작동할 것입니다.
이를 사용하는 두 가지 방법은 다음과 같습니다.
- git 저장소를 복제하고 실행한
./bootstrap
다음 일반적인./configure -C
및make -j12 install
. - 패치 적용(8.31로 재설정)을 다른 버전의 coreutils로 전환하여 고통스러운 부팅 프로세스를 건너뜁니다.
여기에서 사용할 수 있는 다양한 매개변수를 얻을 수 있습니다.집에서 만드는 공식. 변경 사항은 오직 cp
및 mv
에만 유용하므로 이 두 바이너리만 교체하도록 선택할 수 있습니다. ( mv
reflink를 사용하는 것은 서브모듈에 유용합니다.)
하나 있다관련 패치cp
reflink=auto도 기본적으로 활성화되어 있습니다 install
. 항상 이 옵션을 추가하는 것을 잊어버렸거나 ginstall
Makefile에서 더 빠른 기능을 원한다면 이 옵션을 시도해 보십시오.
답변3
공익사업Rust로 작성된 GNU coreutils 복제본입니다.macOS의 APFS에서 참조 링크 복사본 지원Linux의 GNU coreutils와 동일한 구문을 통해.
답변4
안타깝게도 이 --reflink=auto
옵션은 아직 MacOS에서는 사용할 수 없습니다. HFS는 기본적으로 CoW(기록 중 복사)도 지원하지 않습니다.
아마도 그러한 지원은 미래에 추가될 것입니다. 아마도 ZFS가 기본적으로 사용 가능해지거나 다른 기본 파일 시스템이 지원을 추가할 때일 것입니다.
현재 사용 가능한 옵션에 대해서는 매뉴얼 페이지를 참조하는 것이 좋습니다.man cp
노트:
MacOS에서는 대부분의 명령( 포함 cp
)은 긴 옵션이 아닌 짧은 옵션만 지원합니다. 따라서 이에 상응하는 문자가 있는 경우 이는 단지 하나의 문자일 뿐입니다. 예제는 GNU coreutils 버전 -L
에 있으며 MacOS에서만 사용할 수 있습니다.--dereference
cp
-L