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
또는 tar
GNU라면 다음 중 하나를 수행하세요 bsdtar
.
(cd / &&
sed "s:^~:$HOME:" | tar -T - -zcf -) < file.list > file.tar.gz
일부 다른 사람들은 그렇지 않았습니다 tar
. 이를 위해 매개변수( )를 사용합니다.-I
-T
star
list=-
star cvf - list=-
star
해당 목록의 파일이 유형인 경우를 제외하고 위 솔루션에서 참고하세요.목차, 해당 디렉토리의 전체 내용을 포함합니다.
내용 없이 디렉토리만 아카이브하려면 pax
add -d
옵션을 사용하거나 GNU tar
또는 bsdtar
이 --no-recursion
옵션( 으로도 -n
사용됨 bsdtar
)을 사용하십시오.
star
디렉터리의 내용을 포함 하려면 이 -dodesc
옵션을 추가하세요.