Change working directory

If you want to zip the content of a given directory and store the zip file in the current directory, you can write it:

(cd /some/dir && zip -r - dir-there) > file.zip

From man zip:

-b path

 --temp-path path

Use the specified path for the temporary zip archive. For example:

zip -b /tmp stuff *

will put the temporary zip archive in the directory /tmp, copying over stuff.zip to the current directory when done. This option is useful when updating an existing archive and the file system containing this old archive does not have enough space to hold both old and new archives at the same time. It may also be useful when streaming in some cases to avoid the need for data descriptors. Note that using this option may require zip take additional time to copy the archive file when done to the destination file system.

By default zip stores the full path relative to the current directory. If you want your zipfile to have your sql directory as the root, you'll need to run the command from the /home/cyrus directory.


-b specifies where zip should put temporary files, not that it should change directory somewhere. From man zip:

 -b path
      Use the specified path for the temporary  zip  archive.

Try this:

cd /home/cyrus && zip sql.zip sql

Tags:

Zip