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