一、打包文件
在Linux系統中,我們可以使用tar命令進行文件打包。通過將多個文件或目錄打包成一個文件,可以方便地進行傳輸、備份或歸檔。
使用tar命令打包文件的基本格式為:
tar -czvf <壓縮包名稱.tar.gz> <待壓縮文件或目錄>
其中:
- -c:新建一個打包文件;
- -z:使用gzip格式壓縮文件;
- -v:顯示打包的詳細過程;
- -f:指定打包文件的名稱。
例如,將/home/user1目錄下的所有文件打包成名為myfiles.tar.gz的文件,可以使用以下命令:
tar -czvf myfiles.tar.gz /home/user1
此命令會將/home/user1目錄下所有的文件和子目錄打包成myfiles.tar.gz文件,並且使用gzip格式進行壓縮。在執行該命令後,會在當前目錄下生成一個myfiles.tar.gz壓縮包。
二、解壓縮文件
在Linux系統中,我們可以使用tar命令進行文件解壓縮。通過解壓縮文件,可以還原出原始的多個文件或目錄。
使用tar命令解壓縮文件的基本格式為:
tar -xzvf <壓縮包名稱.tar.gz> [-C <解壓縮目錄>]
其中:
- -x:解壓縮文件;
- -z:使用gzip格式解壓縮文件;
- -v:顯示解壓縮的詳細過程;
- -f:指定待解壓縮的文件。
- -C:指定解壓縮目錄,不指定默認解壓縮到當前目錄。
例如,將myfiles.tar.gz解壓縮到/home/user2目錄下,可以使用以下命令:
tar -xzvf myfiles.tar.gz -C /home/user2
此命令會將myfiles.tar.gz壓縮包解壓縮到/home/user2目錄下,並且還原出原始的多個文件或目錄。如果不指定-C參數,則默認解壓縮到當前目錄。
三、打包和解壓縮壓縮包中特定類型的文件
如果只需要打包或解壓縮壓縮包中特定類型的文件,可以使用find命令和管道符結合tar命令進行操作。
例如,將/home/user1目錄下所有的.py文件打包成mypython.tar.gz文件,可以使用以下命令:
find /home/user1 -type f -name "*.py" | tar -czvf mypython.tar.gz -T -
其中:
- find /home/user1 -type f -name “*.py”:在/home/user1目錄下搜索所有的.py文件;
- |:管道符,將find命令的輸出作為tar命令的輸入;
- tar -czvf mypython.tar.gz -T -:將tar命令的輸入設置為管道符左側命令的輸出,並將所有文件打包成mypython.tar.gz文件。
如果需要將mypython.tar.gz壓縮包解壓縮到/home/user2目錄下,可以使用以下命令:
tar -xzvf mypython.tar.gz -C /home/user2 --wildcards "*.py"
其中:
- –wildcards “*.py”:只解壓縮壓縮包中的.py文件。
四、壓縮和解壓縮大文件
如果待壓縮的文件較大,可能會導致tar命令執行緩慢或失敗。為了解決這個問題,可以使用pigz命令將文件以多線程方式進行gzip壓縮。
例如,將/home/user1目錄下所有的文件以多線程方式進行壓縮,並保存到myfiles.tar.gz壓縮包中,可以使用以下命令:
tar -cf - /home/user1 | pigz -p 4 > myfiles.tar.gz
其中:
- tar -cf – /home/user1:將/home/user1目錄打包並輸出到標準輸出流;
- pigz -p 4:使用4個線程進行壓縮;
- > myfiles.tar.gz:將壓縮後的數據輸出到myfiles.tar.gz文件中。
如果需要使用pigz命令解壓縮文件,可以使用以下命令:
pigz -dc myfiles.tar.gz | tar -xf - -C /home/user2
其中:
- pigz -dc myfiles.tar.gz:解壓縮myfiles.tar.gz文件並將數據輸出到標準輸出流中;
- tar -xf – -C /home/user2:將標準輸入流中的數據解壓縮到/home/user2目錄。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/270708.html