If you have a limited bandwidth between two servers and want to transfer the files faster, then zip the files and transfer.
The syntax of zip command is
zip [options] zipfile files_list
The options of zip command are:
-d : Removes the file from the zip archive -u : Updates the file in the zip archive -m : Deletes the original files after zipping. -r : Recursively zips the files in a directory -x : Exclude the files in creating the zip -v : verbose mode -1 : Compresses the files faster -9 : Compresses the files better -f : freshen only changed files. zipfile : creates the zip file with name as zipfile.zip files_list : list of files to be zipped.
Zip Command Examples:
The files in my current directory are listed below:
docs/linux.pdf docs/oracle.pdf docs/unix.pdf linux-virtual-server.bat unix-server.dat
Here docs is a directory which contains the files linux.pdf, unix.pdf and oracle.pdf. We will see how to use zip command with examples.
1. Creating a zip file
The zip command in unix or linux system creates an archive with the specified files. This is shown below:
> zip archive linux-virtual-server.bat unix-server.dat adding: linux-virtual-server.bat (deflated 80%) adding: unix-server.dat (deflated 80%) > ls archive.zip docs linux-virtual-server.bat unix-server.dat
The above command creates the zip file with name archive.zip
2. Extracting files from zip
To extract files from the zip, use the unzip command in unix system. This is shown below:
> unzip archive.zip Archive: archive.zip inflating: linux-virtual-server.bat inflating: unix-server.dat > ls archive.zip linux-virtual-server.bat unix-server.dat
3. Removing file from a zip file
After creating a zip file, you can remove a file from the archive using the -d option. To remove the file unix-server.dat from the archive, run the below zip command:
> zip -d archive.zip unix-server.dat deleting: unix-server.dat > unzip archive.zip Archive: archive.zip inflating: linux-virtual-server.bat
4. Update existing zip file
You can update the files in already created zip file. If any of the files are modified after zipping, you can fresh the zip file with only those modified files using the -f option.
> zip -f archive.zip freshening: linux-virtual-server.bat (stored 0%)
Another way is using the -u option. This option can be used to update the specified list of files or add new files to the existing zip file.
> zip -u archive.zip linux-virtual-server.bat temp updating: linux-virtual-server.bat (deflated 79%) adding: temp (stored 0%)
5. Recursively zip files in directory.
To zip a directory recursively, use the -r option with the zip command. This example is shown below:
> zip -r dir_archive docs adding: docs/ (stored 0%) adding: docs/unix.pdf (stored 0%) adding: docs/oracle.pdf (stored 0%) adding: docs/linux.pdf (stored 0%)
6. Excluding files in zipping
Let say you are zipping all the files in the current directory and want to exclude some unwanted files. You can exclude these unwanted files using the -x option.
zip exclude_archive * -x linux-virtual-server.bat
The above command zips all the files in the current directory except the file linux-virtual-server.bat
7. Faster compressing
You can compress the files very fast using the -1 option with zip command. An example is shown below with and without using fast compression.
> zip -1 fast_archive linux-virtual-server.bat adding: linux-virtual-server.bat (deflated 79%) >zip normal_archive linux-virtual-server.bat adding: linux-virtual-server.bat (deflated 80%)
If you use fast compression, the archive file created will occupy more space (size) when compared to normal compression.
8. Better compression.
To reduce more amount of size the files occupied, you can use the -9 option with the zip command. This gives a better compression.
> zip -9 better_archive linux-virtual-server.bat adding: linux-virtual-server.bat (deflated 81%)