Linux命令:如何将多个文件及文件夹压缩为一个压缩文件及解压 - tar命令、将一个文件移动到另一个目录下 - mv命令、删除文件夹和文件的命令 - rm命令

时间:2024-03-02 20:48:26

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是强制删除。