1、如何将多个文件及文件夹压缩为一个压缩文件

经常会忘记 tar 压缩和解压命令的使用,故记下来。

// 1、打包压缩

tar -zcvf pack.tar.gz pack/ #打包压缩为一个.gz格式的压缩包

tar -jcvf pack.tar.bz2 pack/ #打包压缩为一个.bz2格式的压缩包

tar -Jcvf pack.tar.xz pack/ #打包压缩为一个.xz格式的压缩包

// 2、解包解压

tar -zxvf pack.tar.gz /pack #解包解压.gz格式的压缩包到pack文件夹

tar -jxvf pack.tar.bz2 /pack #解包解压.bz2格式的压缩包到pack文件夹

tar -Jxvf pack.tar.xz /pack #解包解压.xz格式的压缩包到pack文件夹

问题:我要把这些文件压缩为一个压缩文件

解决方案:linux命令 — tar命令:https://www.runoob.com/linux/linux-comm-tar.html

PS D:\nuxtrun\test> tar czvf dev.tar.gz .\nuxt.config.js .\package.json .\package-lock.json .\router.js .\static\ .\.nuxt\

a ./nuxt.config.js

a ./package.json

a ./package-lock.json

a ./router.js

tar.exe: ./static: Couldn't find file: Invalid argument

tar.exe: ./.nuxt: Couldn't find file: Invalid argument

tar.exe: Error exit delayed from previous errors.

注意目录的话需要写通配符,否则的话就会报上面这个错。正确的应该这样:

PS D:\nuxtrun\test> tar czvf dev.tar.gz .\nuxt.config.js .\package.json .\package-lock.json .\router.js .\static\* .\.nuxt\*

a ./nuxt.config.js

a ./package.json

a ./package-lock.json

a ./router.js

a ./static/apple-app-site-association

a ./static/behavior.js

a ./static/favicon.ico

a ./static/robots.txt

a ./static/sitemap202102.xml

a ./static/wechatCode.css

a ./.nuxt/App.js

a ./.nuxt/axios.js

a ./.nuxt/client.js

a ./.nuxt/components

a ./.nuxt/empty.js

a ./.nuxt/index.js

a ./.nuxt/loading.html

a ./.nuxt/middleware.js

a ./.nuxt/router.js

a ./.nuxt/server.js

a ./.nuxt/store.js

a ./.nuxt/utils.js

a ./.nuxt/views

a ./.nuxt/views/app.template.html

a ./.nuxt/views/error.html

a ./.nuxt/components/no-ssr.js

a ./.nuxt/components/nuxt-build-indicator.vue

a ./.nuxt/components/nuxt-child.js

a ./.nuxt/components/nuxt-error.vue

a ./.nuxt/components/nuxt-link.client.js

a ./.nuxt/components/nuxt-link.server.js

a ./.nuxt/components/nuxt-loading.vue

a ./.nuxt/components/nuxt.js

PS D:\nuxtrun\test>

然后就会在该目录下生成 dev.tar.gz 压缩文件

将上面压缩的文件解压到当前目录

tar -zxvf .\dev.tar.gz

2、将一个文件移动到另一个目录下 — mv 命令

(1)作用:mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令等同于DOS系统下的ren和move命令的组合。它的使用权限是所有用户。

(2)格式: mv [options] 源文件或目录 目标文件或目录

(3)第二个参数

当第二个参数类型是文件时,mv命令完成文件重命名,它将所给的源文件或目录重命名为给定的目标文件名。

当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

(4)应用实例

// 1、将/usr/udt中的所有文件移到当前目录(用”.”表示)中:

mv /usr/udt/* .

// 2、将文件test.txt重命名为wbk.txt:

mv test.txt wbk.txt

// 3、把当前目录的一个子目录里的文件移动到另一个子目录里

mv 文件名/* 另一个目录

// 4、移动当前文件夹下的所有文件到上一级目录

mv * ../

三、删除文件夹和文件的命令 - rm命令

-r,就是向下递归,不管有多少级目录,一并删除

-f,就是直接强行删除,不作任何提示的意思

1、删除文件使用实例:

rm -f /var/log/httpd/access.log

// 将会强制删除/var/log/httpd/access.log这个文件

2、删除文件夹实例:

rm -rf /var/log/httpd/access

// 将会删除/var/log/httpd/access目录以及其下所有文件、文件夹

Linux cannot remove is a directory 解决办法:如果直接用 rm -f ssh/ 会提示删除不了,cannot remove is a directory 表示这是个目录不能删除,但是我们可以采用强制删除的办法,请看下面示例在这里用户cb文件夹是一个目录,可用rm -rf cb删除:-r是递归处理,就是一层一层的删;-f是强制删除。