在Linux中,常用的文件夾打包命令是 tar
,它可以將文件夾壓縮打包成 .tar
、.tar.gz
、.tar.bz2
等格式的文件。以下是具體用法:
1. 基礎打包(不壓縮,生成 .tar
文件)
將文件夾 folder
打包為 folder.tar
:
tar -cvf folder.tar folder/
- 參數說明:
-c
:創建新的歸檔文件(打包)。-v
:顯示打包過程( verbose,可選,方便查看進度)。-f
:指定打包后的文件名(必須放在參數最后,緊跟文件名)。
2. 打包并壓縮(常用格式)
(1)tar.gz
格式(高壓縮率,推薦)
打包并通過 gzip
壓縮,生成 .tar.gz
文件:
tar -zcvf folder.tar.gz folder/
- 新增參數
-z
:使用gzip
壓縮,文件后綴通常為.tar.gz
或.tgz
。
(2)tar.bz2
格式(壓縮率更高,速度稍慢)
通過 bzip2
壓縮,生成 .tar.bz2
文件:
tar -jcvf folder.tar.bz2 folder/
- 新增參數
-j
:使用bzip2
壓縮,文件后綴為.tar.bz2
。
(3)tar.xz
格式(高壓縮率,較新格式)
通過 xz
壓縮,生成 .tar.xz
文件:
tar -Jcvf folder.tar.xz folder/
- 新增參數
-J
:使用xz
壓縮,文件后綴為.tar.xz
。
3. 打包多個文件夾
同時打包 folder1
、folder2
到 multiple.tar.gz
:
tar -zcvf multiple.tar.gz folder1/ folder2/
4. 排除特定文件/子文件夾
打包時排除 folder
中的 temp
子文件夾和 *.log
文件:
tar -zcvf folder.tar.gz --exclude=folder/temp --exclude=folder/*.log folder/
5. 查看打包文件內容(不解壓)
查看 folder.tar.gz
中包含的文件/文件夾:
tar -ztvf folder.tar.gz
- 參數
-t
:列出歸檔文件中的內容;-z
對應.tar.gz
格式(若為其他格式,用-j
或-J
)。
總結
格式 | 命令 | 特點 |
---|---|---|
.tar | tar -cvf 文件名.tar 文件夾/ | 僅打包,不壓縮,體積大 |
.tar.gz | tar -zcvf 文件名.tar.gz 文件夾/ | 壓縮率較高,速度較快 |
.tar.bz2 | tar -jcvf 文件名.tar.bz2 文件夾/ | 壓縮率更高,速度較慢 |
.tar.xz | tar -Jcvf 文件名.tar.xz 文件夾/ | 壓縮率最高,適合大文件 |
根據需求選擇格式即可,日常使用中 .tar.gz
是最常用的選擇。
在Linux系統中,將文件或文件夾壓縮為ZIP包可以使用zip
命令。以下是具體用法和示例:
基本語法
zip [選項] 壓縮包名稱.zip 要壓縮的文件/文件夾
常用選項
-r
:遞歸壓縮(用于壓縮文件夾,必須添加此選項,否則只會壓縮文件夾本身,不會包含內部文件)。-q
:安靜模式,不顯示壓縮過程的輸出信息。-m
:壓縮后刪除原文件(謹慎使用)。-9
:最高壓縮率(默認是中等壓縮率,-0
表示無壓縮)。
示例
-
壓縮單個文件
將file.txt
壓縮為archive.zip
:zip archive.zip file.txt
-
壓縮多個文件
將file1.txt
、file2.jpg
壓縮為docs.zip
:zip docs.zip file1.txt file2.jpg
-
壓縮文件夾(關鍵)
將myfolder
文件夾(包含內部所有文件和子文件夾)壓縮為myfolder.zip
,必須加-r
:zip -r myfolder.zip myfolder
-
高壓縮率壓縮文件夾
用最高壓縮率(-9
)壓縮data
文件夾:zip -r -9 data_high.zip data
-
安靜模式壓縮
壓縮時不顯示進度信息:zip -r -q backup.zip /home/user/docs
注意事項
- 如果系統中沒有
zip
命令,需要先安裝:- Ubuntu/Debian:
sudo apt install zip
- CentOS/RHEL:
sudo yum install zip
- Fedora:
sudo dnf install zip
- Ubuntu/Debian:
- 壓縮后可以用
unzip
命令解壓(需安裝unzip
包):unzip 壓縮包名稱.zip
。
在Linux中,將某個ZIP文件移動到當前目錄,使用 mv
命令即可,語法如下:
mv /路徑/文件名.zip .
說明:
/路徑/文件名.zip
:需要移動的ZIP文件的完整路徑(絕對路徑或相對路徑均可)。.
:表示當前目錄(即目標位置)。
示例:
-
若ZIP文件在
/home/user/downloads
目錄下,名為data.zip
,當前在/home/user/docs
目錄,執行:mv /home/user/downloads/data.zip .
執行后,
data.zip
會被移動到/home/user/docs
目錄(當前目錄)。 -
若ZIP文件在當前目錄的上一級目錄(
../
),名為backup.zip
,執行:mv ../backup.zip .
注意:
- 如果當前目錄已存在同名ZIP文件,
mv
會直接覆蓋,無需確認。若需避免誤覆蓋,可添加-i
選項(交互式提示):
此時若存在同名文件,會提示mv -i /路徑/文件名.zip .
是否覆蓋?
,輸入y
確認覆蓋,n
取消。