tar
# 创建压缩包
tar -cvf name-of-archive.tar /path/to/directory-or-file
tar -cvf name-of-archive.tar /home/arch --exclude=/home/arch/.cache --exclude=/home/arch/Downloads
tar -cvf name-of-archive.tar /home/arch --exclude=*.jpg
tar -czvf name-of-archive.tar.gz /path/to/directory-or-file
tar -cJvf name-of-archive.tar.xz /path/to/directory-or-file
tar -cjvf name-of-archive.tar.bz2 /path/to/directory-or-file
tar -cZvf name-of-archive.tar.Z /path/to/directory-or-file
# 查看压缩包内容
tar -tf archive.tar
tar -tvf archive.tar
tar -tzf archive.tar.gz
tar -tzvf archive.tar.gz
# 解压文件
tar -xvf archive.tar
tar -xvf archive.tar -C /tmp
tar -xzvf archive.tar.gz
tar -xJvf archive.tar.xz
tar -xjvf archive.tar.bz2
tar -xZvf archive.tar.Z
参数解释
* -c: 创建压缩包(create)
* -t: 列出压缩包内容(list)
* -x: 提取文件(extract)
* -v: 显示详细信息(verbose)
* -f: 用于指定文件名(filename),f后必须接文件名。
* -C: 解压到指定目录
* –exclude: 忽略文件或目录
* -z: 使用 gzip 算法来创建压缩包或提取文件。
* -J: 使用 xz 算法创建压缩包或提取文件。
* -j: 使用 bzip2 算法创建压缩包或提取文件。
* -Z: 使用 ncompress 算法创建压缩包或提取文件。
其他
# 7z
7z a archive.7z /path/to/directory-or-file
7z x archive.7z
7z x archive.rar
# zip
zip -r archive.zip /path/to/directory-or-file
unzip archive.zip
# gzip
gzip archive.tar
gunzip archive.tar.gz
# xz
xz archive.tar
unxz archive.tar.xz
# bzip2
bzip2 archive.tar
bunzip2 archive.tar.bz2
# Z
compress archive.tar
uncompress archive.tar.Z
jar
jar -cvf archive.jar /path/to/directory-or-file
jar -xvf archive.jar
注:如果是打包的是Java类库,并且该类库中存在主类,那么需要写一个 META-INF/MANIFEST.MF 配置文件,内容如下:
Manifest-Version: 1.0
Created-By: 1.6.0_27 (Sun Microsystems Inc.)
Main-class: the_name_of_the_main_class_should_be_put_here
然后用如下命令打包:
jar -cvfm name-of-archive.jar META-INF/MANIFEST.MF /path/to/directory-or-file
这样以后就能用 java -jar name-of-archive.jar
命令直接运行主类中的 public static void main
方法了。