Ubuntu18.04解压与压缩工具
对于大的文件夹的移动,最好打包后再移动,否则文件数目太多会导致很慢并且容易出bug
.zip
$ unzip FileName.zip # 解压
$ unzip -d Dirname filename.zip # 解压到指定文件夹,-n可以不覆盖已有文
$ unzip -l filename.zip # 查看zip中的目录结构
## 仅解压该压缩包中指定的文件,解压后将在当前目录下生成文件夹:FileName/path/to/spcified/file
$ unzip FileName.zip 'FileName/path/to/spcified/file' -d .
$ zip FileName.zip DirName # 将DirName本身压缩 $ zip -r FileName.zip DirName # 压缩,递归处理,将指定目录下的所有文件和子目录一并压缩 (一般用这个)
$ zip -r FileName.zip DirName -e # 加上密码 $ zip -r target.zip target-foler/ -x "exclude1" "exclude2"
$ zipinfo -1 xx.zip # 查看zip文件中的文件目录 更多参考博客
.rar
$ sudo apt install rar # 安装压缩、解压套件
$ unrar x filename.rar # 解压,不会创建新文件夹,直接释放压缩包内文件到当前文件夹
* 如果没有权限安装应用,可以去 网站 里下载安装包,注意系统版本和位数(32、64)要和实际的对上;解压后,修改makefile中的相关路径,将相关路径加到环境变量PATH,再make安装即可使用了
.7z
$ sudo apt install p7zip-full # 安装压缩、解压套件
$ 7za x filename.7z # 解压,如果是划分了几个压缩文件的,直接解压第一个即可
$ 7za x filename.7z -o{directory} # 指定解压目的文件夹,紧挨着-o,不过它似乎需要绝对路径,否则会在当前文件夹下创建新的文件夹
$ 7za a -r filename.7z directory/* # 如果没加*就是压缩当前文件夹下所有的,加了就是压缩directory下所有的文件,生成压缩文件filename.7z
.tar
$ tar -xvf FileName.tar # 解包 $ tar -cvf FileName.tar DirName # 将DirName和其下所有文件(夹)打包
$ tar -rvf FileName.tar.gz b.txt # 向打包文件中追加文件b.txt
.tar.gz 【.tar是打包,.tar.gz才是压缩过的文件 (添加参数z)】
$ tar -zxvf FileName.tar.gz # 解压 $ tar -C DesDirName -zxvf FileName.tar.gz # 解压到目标路径
$ tar -zcvf FileName.tar.gz DirName # 将DirName和其下所有文件(夹)压缩,压缩包在当前目录,无法追加新文件
$ tar zcvf path/to/FileName.tar.gz dirname/ # 压缩文件放到指定目录,
** 对于链接文件,只包含DirName内的链接名,不会压缩链接指向的内容
## 压缩部分文件、文件夹除外的文件——参考
$ tar -zcvf tomcat.tar.gz --exclude=tomcat/logs tomcat # logs目录除外,压缩tomcat目录;注意,不能写成tomcat/logs/ 或./tomcat/logs 或绝对路径
$ tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs tomcat # logs、libs目录除外,压缩tomcat目录,注意:目标目录tomcat在后 $ tar -zcvf tomcat.tar.gz --exclude=tomcat/{logs,libs} tomcat # 和上面命令等效,花括号中不要有多余的空格
## 压缩指定文件、文件夹
$ tar -zcvf filename.tar.gz a b # 只将(当前目录下的)a和b一起打包压缩
## 查看tar包内的文件,但不解压,用参数 t
$ tar (-)tvf filename.tar(.gz) # 将在终端输出文件列表
$ tar tvf filename.tar(.gz)|grep ^d # 查看压缩包内的目录结构(可能会漏掉一些,原因未知)
## 查看tar包内的文件数目——参考
$ tar (-)tvf filename.tar(.gz) >flist.out # 将输出的文件列表存放在flist.out中
$ wc -l flist.out # 将得到flist.out中的内容的行数,一行为一个文件(注意,一个文件夹也会占一行)
* (x)表示x可以有或者没有
浙公网安备 33010602011771号