[linux] 모든 하위 디렉토리의 모든 파일을 bash에서 하나의 압축 파일로 압축하는 방법
가능한 중복 :
디렉토리 세트를 압축하고 tar 압축 파일 작성
이 포스트 는 디렉토리 구조 내에서 각 파일을 개별적으로 압축하는 방법을 설명합니다. 그러나 약간 다른 것을해야합니다. 특정 디렉토리 아래의 모든 파일에 대해 하나의 큰 gzip 파일을 생성해야합니다. 또한 압축 파일의 출력 파일 이름 (예 : files.gz)을 지정하고 이미 존재하는 경우 이전 압축 파일 파일을 덮어 쓸 수 있어야합니다.
답변
tar -zcvf compressFileName.tar.gz folderToCompress
folderToCompress의 모든 것은 compressFileName으로 이동합니다
편집 : 검토 및 의견 후 사람들이 확장자없이 compressFileName과 혼동 될 수 있음을 깨달았습니다. 원하는 경우 compressFileName과 함께 .tar.gz 확장명 (제안대로)을 사용할 수 있습니다
답변
재귀 적으로 작동하는 많은 압축 방법이 있으며 최종 사용자가 누구인지 아는 것이 좋습니다.
즉, Windows를 실행하는 누군가에게 보내야한다면 zip이 가장 좋습니다.
zip -r file.zip folder_to_zip
unzip filenname.zip
다른 리눅스 사용자 또는 자기 타르에게 좋습니다.
tar -cvzf filename.tar.gz folder
tar -cvjf filename.tar.bz2 folder # even more compression
#change the -c to -x to above to extract
타르와 조심해야합니다. 예를 들어 내가 달리면
cd ~
tar -cvzf passwd.tar.gz /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd
pwd
/ home / myusername
tar -xvzf passwd.tar.gz
이것은 / home / myusername / etc / passwd를 생성합니다
tar의 모든 버전이이를 수행하는지 확실하지 않은 경우 :
Removing leading `/' from member names
답변
@amitchhajer의 게시물은 GNU tar에서 작동합니다. 누군가이 게시물을 찾아 NON GNU
시스템에서 작동하려면 다음과 같이하십시오.
tar cvf - folderToCompress | gzip > compressFileName
아카이브를 확장하려면
zcat compressFileName | tar xvf -