Linux 시스템에서 tar가 생성되었습니다. 이 tar의 일부를 다른 Linux 시스템에 업로드해야 합니다. 전체 tar 파일은 크기가 커서 업로드하는 데 몇 시간이 걸립니다. 저는 지금 Mac OSX 컴퓨터를 사용하고 있는데 이것이 제 질문입니다.
- tar의 압축을 폴더에 풀고 새 서버에 업로드하는 데 필요한 것을 찾았습니다.
- 업로드하고 싶은 것만 포함하는 더 작은 tar를 만들었습니다.
- 업로드한 후 새 Linux 시스템에 압축을 풀었습니다.
- 서버를 보니
._
파일이 가득하네요. 업로드된 모든 파일에는 , , , ...._
와 같은 파일이 있습니다.text1.txt
._text1.txt
text2.txt
._text2.txt
OSX에는 이러한 파일이 tar에 포함되어 있습니다.
나는 이것을 시도했다
tar --exclude='._*' -cvf newTar .
차이 없음.
이제 SSH를 통해 새 서버에 액세스할 수 없습니다.
이 문제를 해결하려면 어떻게 해야 합니까? 깨끗한 tar.gz 파일을 생성하는 방법은 무엇입니까?
답변1
._ 파일은 bsdtar
OS 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이 아닌 운영 체제에 파일을 업로드하고 파일을 삭제한 후 다시 패키지해야 합니다. 이것이 유일한 해결책인 것 같습니다.