I have to zip a few files induvidually from folder A and move them to folder B on the same directory which takes lot of time. So I thought of moving all those files to be zipped to a new folder(c), zip it and move it to folder B . Is it possible to do it with few commands? suggestions are welcomed.
-
3Your question is very hard to understand. Please edit and show us an example of the files and directories involved. – terdon♦ Oct 6 '14 at 22:42
Possibly a shell type of script could help you:
enter code here
mv <file.a>...<file.n> <new_folder>
zip -r <new_folder>
mv new_folder.zip /destination_folder
cp -R (the path of the folder to copy) (the name of the copied file)
then
zip -r (name your zip) (the name of the copied file)
Example scenario: Let's say that I want to copy the plugins of a WordPress installation and after zip them (while I'm in the root folder of WordPress).
I will do:
cp -R wp-content/plugins plugins_backup
then to check I'll do:
ls -la
I will see the new directory plugins_backup, and I will zip it:
zip -r plugins_backup.zip plugins_backup
ready. (then follow the answer of mv to move it anywhere).
Somehow I've been ignorant all this time of the FUSE plug-in for ZIP file support. It allows the user to mount (or create) a ZIP file as though it were a read/write filesystem.
First create a new (empty) file ending in .zip and mount it on /mnt. Since you want the ZIP file to eventually end up in folder_B, we'll create it there:
# rm -f /folder_B/my_files.zip
# fuse-zip /folder_B/my_files.zip /mnt
Your post isn't clear, but it sounds like you want the .ZIP file to contain folder_C, and then all your files reside there. So we'll create folder_C inside the .ZIP file that's on /mnt:
# mkdir /mnt/folder_C
Now you can simply go into folder_A and move all the files you want to be zipped into /mnt/folder_C:
# cd /folder_A
# mv file1 file2 ... fileN /mnt/folder_C
Finally, unmount and inspect the ZIP file:
# umount /mnt
# unzip -v /folder_B/my_files.zip
I realize this looks convoluted, but the basic four steps are:
# fuse-zip /folder_B/my_files.zip /mnt
# mkdir /mnt/folder_C
# mv /folder_A/file1 /folder_A/file2 ... /folder_A/fileN /mnt/folder_C
# umount /mnt
I don't mean to imply this is method is any better nor worse than the other solutions, just a different way to do it. I hope you find it interesting.