包含隐藏文件的压缩文件夹

在 Linux 中,我可以通过以下工作目录压缩所有文件(隐藏文件除外) :

zip 1.zip *

但是如何包含隐藏文件呢?

113482 次浏览

EDIT: The correct way is zip -r 1.zip .

The commands shown in my previous answer below are incorrect because they also include the parent directory.


Have you tried this:

zip yourfile.zip sourcedir/* .*

or you in your case

zip 1.zip * .[^.]*

It should include all hidden files also.

Just to be sure it is not forgotten since this is a forum for developers and a good number of us use git.

An easy way to get only what you want in the zip is to use git archive -o filename.zip branch

If you want to zip all files (+hidden files) Kindly using: zip -r namefiles.zip . The "." is all files in folder.

zip -r namefiles.zip "folder will zip"

Or you can add more simple

zip 1.zip ./

if you don't have rights to save zip file in current dir you can go to dir where you have rights and type

zip -r 1.zip /path/to/source/dir/.

However when if in .../some_dir you type

unzip 1.zip

then your files will be decompress into .../some_dir/path/to/source/dir/

On macOS 10.15.7 I had to separatelly add all dot leading files (\.*) and rest of the files (*):

zip -r file.zip \.* *

If you'd like to save some subdirectory of the current directory recursively with hidden and regular files just type

$ zip -r backup_subdirectory.zip backup_subdirectory/. backup-subdirectory/*

And for unzipping:

$ unzip backup_subdirectory.zip

Or even simpler by using tar for creating an archive:

$ tar czvf backup_subdirectory.tar.gz backup_subdirectory/

And for extracting all files from the archive:

$ tar xzvf backup_subdirectory.tar.gz
zip -r 1.zip .* -x "../*"

Just doing zip -r 1.zip .* will include the parent folder as well so the trick is to exclude the parent folder using -x "../*"