저는 플래시 드라이브를 전송 매체(FAT)로 사용하여 Mac 10.13(APFS)과 Pop_OS(ext4) 간에 rsync를 사용하고 있습니다. 내 명령은
rsync -av --exclude-from='exclude-files.txt' source-dir destination-dir
다음 패턴은 Mac에만 관련이 있다고 가정하므로 제외했습니다.
*.DS_Store*
*.Spotlight-V100*
*.TemporaryItems*
*.Trashes*
*.fseventsd*
Mac 파일에 확장된 속성이 있으면 FAT 플래시 드라이브와 Linux 시스템에 숨겨진 파일로 표시됩니다(예: ._exclude-files.txt
.
ls -al@
Mac에 마운트된 플래시 드라이브에서 실행 하면 이 내용이 표시되지 않지만 ._exclude-files.txt
다음 xattr 목록이 표시됩니다.
com.apple.TextEncoding 15
com.apple.metadata._kMDItemUserTags 42
com.apple.lastuseddate#PS 16
Linux 노트북에 플래시 드라이브를 장착했을 때 ._exclude-files.txt
실제 파일을 볼 수 있었습니다.
-X
옵션을 사용하거나 사용하지 않고 rsync를 실행해 보았습니다 --filter='-x! user.*'
(사용자 네임스페이스의 개념을 완전히 이해하지는 못했지만).
아마도 배제를 통해 이 문제를 해결할 수 있지만 *._*
, 왜 이런 일이 발생하는지 이해하고 싶습니다. 저는 Linux/Ubuntu/Pop을 처음 접하지만 이를 기본 OS로 만드는 것이 목표입니다.
업데이트: 처음에 Mac에서 플래시 드라이브로 디렉터리를 복사한 다음 Linux 시스템으로 복사하여 문제가 발생한 것인지 궁금합니다. 그래서 rsync
Mac 디렉토리의 내용을 플래시 드라이브의 빈 디렉토리에 넣는 테스트를 실행했습니다 . 처음에 ls -al@
내 Mac에 마운트된 플래시 드라이브의 디렉토리에 표시된 파일에는 xattr이 없었습니다.그래서 원래 Mac 디렉토리의 내용을 삭제했습니다.그리고 rsync --dry-run
다시 답장을 시도했습니다. ._my-file.txt
파일에 xattr이 표시되지 않더라도 자세한 출력이 다시 표시됩니다.
이것을 시도하면 -X
rsync 오류가 발생합니다.
rsync: get_xattr_names(...) failed: Operation not permitted (1)
그러나 좋은 소식은 자세한 출력에 신비한 ._my-file.txt가 아닌 전송되는 my-file.txt만 표시된다는 것입니다.
나는 그것으로 살 수 있다고 생각하고 달렸다 rsync -avX flash_drive_volume original_mac_dir
. 이제 원본 파일은 원래 위치로 돌아왔지만 놀랍게도 속성이 다시 확장되었습니다.
마치 MacOS가 어떤 방식으로든 확장 속성을 설정하기로 결정한 것과 같습니다. 나는 상관하지 않습니다. 단지 내 Linux 시스템이 관련 없는 파일로 가득 차는 것을 원하지 않을 뿐입니다. *._*
제외 항목을 추가하고 이를 잊어야 할까요 ?
업데이트 2: ._ 파일에 대한 설명을 찾았습니다.Mac OS X: Apple 이중 형식은 접두사 "._"가 포함된 파일 이름을 생성합니다.
답변1
나는 약간의 연구 후에 내 질문에 대답하려고 노력할 것이라고 생각했습니다. Linux 시스템에서 "file ._my-file.txt"를 보면 "AppleDouble Macintosh File"이 반환됩니다. 그래서 "appledouble"을 검색했어요.
먼저 위의 업데이트 2를 기반으로 합니다.
맥 OS의 경우 첫 번째 새 파일은 원래 이름을 유지하고 원본 파일의 데이터 분기를 포함합니다. 두 번째 새 파일은 원본 파일과 이름이 같고 접두사가 "._"이며 원본 파일의 리소스 포크를 포함합니다.
rsync
Mac에서 Linux로 이동하면 이러한 "._" 파일이 생성되고 rsync
Linux에서 Mac으로 돌아가면 해당 파일을 먼저 삭제(예: )하거나 제외하지 않는 한 해당 파일이 Mac으로 다시 전송되는 것 같습니다 find . -name *._* -delete
.
이러한 ._ 파일이 Mac에 있으면 Mac 명령이 있습니다 dot_clean
.
...모든 ._* 파일을 해당 기본 파일과 재귀적으로 병합합니다...
- 이것얼룩 청소맨 페이지.