Linux zip压缩的时候如何排除某个目录或文件?

阿斌 3月前  服务器   789

刚在 VPS 上备份网站文件,用了 zip 命令进行打包压缩:zip -r xxx.zip xxx/。但是我发现里面有个巨大的目录我是不需要的,如何在命令中排除它?

3 个回答
  • 阿炭 3月前
    2

    Linux 中 zip 命令压缩一个文件夹时,我想排除这个文件夹里的某个文件或目录,应该用什么命令?请给出示例。
    ===================
    在Linux中,使用`zip`命令压缩文件夹并排除特定文件或目录,可以通过`-x`参数来实现。下面是一个示例:

    假设要压缩名为`my_folder`的文件夹,但要排除其中的`exclude_file.txt`文件和`exclude_folder`目录,可以使用以下命令:

    zip -r my_folder.zip my_folder -x 'my_folder/exclude_file.txt' 'my_folder/exclude_folder/*'

    在这个示例中:
    - `-r`参数表示递归地将文件夹及其内容添加到压缩文件中。
    - `my_folder.zip`是要创建的压缩文件的名称。
    - `my_folder`是要压缩的文件夹名称。
    - `-x 'my_folder/exclude_file.txt' 'my_folder/exclude_folder/*'`用于排除`my_folder`文件夹中的`exclude_file.txt`文件和`exclude_folder`目录及其内容。

    通过这样的命令,你可以压缩文件夹并排除特定的文件或目录。

    [ 来自ChatGPT ]哈哈!

    3 回复引用 引用
  • 小何同志 3月前
    3
    我试了以下命令发现并不行,根本没有排除hqw目录里的pan文件夹
    zip -r heqianwei.com20240314.zip hqw/ -x "hqw/pan/"
    后来我摸索发现,正确的用法应该是:
    zip -r heqianwei.com20240314.zip hqw/ -x "hqw/pan/*"
    别忘了*号!!!
    1 回复引用 引用
  • 孤城浪人 3月前
    4

    ZIP、tar.gz压缩时排除指定目录:
    1、zip

    压缩时排除一个文件夹下所有内容
    zip -r sss.zip sss/ -x "sss/222/*
    压缩时排除指定多个文件夹下所有内容
    zip -r sss.zip sss/ -x "sss/222/*" -x "sss/333/*"
    如果想后台运行,在命令结尾加个
    2、tar.gz
    tar.gz压缩:进入www.888.com文件夹内,排除某些文件夹打包压缩其余文件
    cd /home/www.888.com/
    tar -zcvf 888.tar.gz ./* --exclude=./*d/2017
    注意:文件夹结尾不能加“/”,否则还是会把2017目录以及其下的文件打包进去
    压缩时排除多个文件夹
    tar -zcvf 888.tar.gz ./* --exclude=./*d/2017 --exclude=./*d/2018  --exclude=./*d/2019

    1 回复引用 引用
    • 探知网
      5
        立即登录 立即注册
返回
发新帖