"tar"를 사용하여 폴더를 보관하기 전에 폴더의 모든 파일을 수정하세요.

"tar"를 사용하여 폴더를 보관하기 전에 폴더의 모든 파일을 수정하세요.

$DIR파일과 폴더가 포함된 모든 폴더를 고려하세요. 이 폴더를 TAR하고 싶지만 그 전에 예비 단계로 파일 내용에 나타나는 문자열을 모든 파일에서 $DIR.tar변경하고 싶습니다 .FOOBAR

특히: 변경 사항은 의 파일에 영향을 주어서는 안 되며 $DIR에만 반영되어야 합니다.$DIR.tar

이것이 GNU/에서 가능합니까 bash?

$DIR, it 및 it 의 복사본을 각각 만들어 sed이를 수행 할 수 있습니다 tar. 메모리 내 솔루션이 있기를 바랍니다.

답변1

물론 가장 간단한 해결책은 디렉터리를 복사한 다음 수정하고 taring하는 것입니다. 이 작업을 수행 중인 파일 시스템이 Btrfs, CIFS, NFS 4.2, OCFS2, overlayfs 또는 XFS인 경우 다음과 같이 디스크 공간(변경된 블록 제외) 및 시간 측면에서 기본적으로 무료입니다.이러한 reflink지원즉, 파일을 복사해도 실제로 파일 내용이 복사되지는 않습니다. 원본 데이터 범위의 복사본은 내용이 변경될 때만 만들어집니다. 사용 cp --reflink=always.

GNU는 tar파일 이외의 어떤 것에서도 입력을 받을 수 없으며 파일을 지정하면 아카이브의 경로를 반영하므로 해당 파일의 경로가 중요하므로 유감스럽게도 해당 파일을 전혀 사용할 수 없습니다. 다른 방법으로 tar.

메모리 내 솔루션이 있기를 바랍니다.

가장 쉬운 방법은 합리적으로 사용할 수 있는 스크립트 언어를 선택하고 프로그램에 의존하기보다는 직접 아카이브를 구축하는 것입니다 tar. 예를 들어 Python에는tarfile모듈; Python 초보자도 사용하기 쉽습니다. 이 내용을 포함하는 답변이 많이 있으며,일부귀하의 솔루션에 도움이 될 수 있습니다. 하지만 아직 확인하지 않았습니다.

관련 정보