tar를 사용하여 .txt 파일의 파일 세트를 압축하는 방법은 무엇입니까?

tar를 사용하여 .txt 파일의 파일 세트를 압축하는 방법은 무엇입니까?

to_be_archived_files.txt다음 내용으로 명명된 .txt 파일에 많은 파일 이름이 나열되어 있습니다 .

~/Documents/dir1/a.html
~/Documents/dir1/b.html
~/Documents/dir1/c/1.html

모두 추가하는 archive.tar.gz방법아스팔트?

나는 다음과 같은 것을 원합니다 :

tar czf archive.tar.gz -FROM-FILELIST=to_be_archived_files.zip

어떻게 해야 하나요?

답변1

-T옵션을 사용하십시오:

 -T, --files-from FILE
       get names to extract or create from FILE

~홈 디렉터리의 별칭 으로 사용할 수 없으므로 폴더를 명시적으로 지정해야 합니다.

답변2

~먼저 홈 디렉터리로 바꿔야 합니다 . 홈 디렉토리에 이 항목이 포함되어 있지 않다고 가정합니다 :(보통 포함되어 있지 않으며, 그렇지 않으면 에서 참조할 수 없습니다 /etc/passwd).

(cd / &&
  sed "s:^~:$HOME:" | pax -w | gzip) < file.list > file.tar.gz

또는 tarGNU라면 다음 중 하나를 수행하세요 bsdtar.

(cd / &&
  sed "s:^~:$HOME:" | tar -T - -zcf -) < file.list > file.tar.gz

일부 다른 사람들은 그렇지 않았습니다 tar. 이를 위해 매개변수( )를 사용합니다.-I-Tstarlist=-star cvf - list=-

star해당 목록의 파일이 유형인 경우를 제외하고 위 솔루션에서 참고하세요.목차, 해당 디렉토리의 전체 내용을 포함합니다.

내용 없이 디렉토리만 아카이브하려면 paxadd -d옵션을 사용하거나 GNU tar또는 bsdtar--no-recursion옵션( 으로도 -n사용됨 bsdtar)을 사용하십시오.

star디렉터리의 내용을 포함 하려면 이 -dodesc옵션을 추가하세요.

관련 정보