tar에 "._" 파일이 많이 있습니다.

tar에 "._" 파일이 많이 있습니다.

Linux 시스템에서 tar가 생성되었습니다. 이 tar의 일부를 다른 Linux 시스템에 업로드해야 합니다. 전체 tar 파일은 크기가 커서 업로드하는 데 몇 시간이 걸립니다. 저는 지금 Mac OSX 컴퓨터를 사용하고 있는데 이것이 제 질문입니다.

  1. tar의 압축을 폴더에 풀고 새 서버에 업로드하는 데 필요한 것을 찾았습니다.
  2. 업로드하고 싶은 것만 포함하는 더 작은 tar를 만들었습니다.
  3. 업로드한 후 새 Linux 시스템에 압축을 풀었습니다.
  4. 서버를 보니 ._파일이 가득하네요. 업로드된 모든 파일에는 , , , ... ._와 같은 파일이 있습니다.text1.txt._text1.txttext2.txt._text2.txt

OSX에는 이러한 파일이 tar에 포함되어 있습니다.

나는 이것을 시도했다

tar --exclude='._*' -cvf newTar  . 

차이 없음.

이제 SSH를 통해 새 서버에 액세스할 수 없습니다.

이 문제를 해결하려면 어떻게 해야 합니까? 깨끗한 tar.gz 파일을 생성하는 방법은 무엇입니까?

답변1

._ 파일은 bsdtarOS X가 OS X 특정 확장 속성 및 리소스 포크를 처리하는 방법입니다. (이것은 AppleDouble이라는 메커니즘으로 실제로 TAR 아카이브에만 적용되는 것이 아니라 MacOS 리소스 포크 및 Finder 정보를 저장하기 위한 기본 메커니즘이 없는 다양한 저장 형식에서 찾을 수 있습니다.)

tar 파일에 추가되는 것을 방지하려면 COPYFILE_DISABLE=1환경 변수로 tar에 전달할 수 있습니다.

COPYFILE_DISABLE=1 tar cf newTar.tar /your/files

답변2

내가 이해한 tar --exclude='._*' -cvf newTar .바로는 작동해야 합니다. Finder가 ._*파일을 생성하지만 newTar포함해서는 안 됩니다.

그러나 통과 모드에서 tar를 호출하면 이러한 파일을 완전히 무시할 수 있습니다. 예를 들어 oldTar아래의 파일 만 복사하려면 some/path다음을 사용합니다.

tar -cf newTar --include='some/path/*' @oldTar

답변3

"._*"로 시작하는 파일은 Apple 특정 위치 표시 파일입니다.이 게시물동일한 페이지에 따르면 OSX 터미널에 로그인하면 분명히 제거할 수 없습니다. Apple이 아닌 운영 체제에 파일을 업로드하고 파일을 삭제한 후 다시 패키지해야 합니다. 이것이 유일한 해결책인 것 같습니다.

관련 정보