我必须从文件夹 A 中单独压缩一些文件,然后将它们移动到同一目录下的文件夹 B,这需要花费大量时间。所以我想到将所有要压缩的文件移动到一个新文件夹(c),将其压缩并移动到文件夹 B 。是否可以用很少的命令来完成它?欢迎提出建议。
答案1
shell 类型的脚本可能可以帮助您:
enter code here
mv <file.a>...<file.n> <new_folder>
zip -r <new_folder>
mv new_folder.zip /destination_folder
答案2
cp -R (the path of the folder to copy) (the name of the copied file)
然后
zip -r (name your zip) (the name of the copied file)
示例场景:假设我想复制 WordPress 安装的插件并压缩它们(当我位于 WordPress 的根文件夹中时)。
我会做:
cp -R wp-content/plugins plugins_backup
然后检查我会做:
ls -la
我将看到新目录插件备份,我将压缩它:
zip -r plugins_backup.zip plugins_backup
准备好。 (然后按照mv的答案将其移动到任何地方)。
答案3
不知何故,我一直对 ZIP 文件支持的 FUSE 插件一无所知。它允许用户挂载(或创建)ZIP 文件,就好像它是读/写文件系统一样。
首先创建一个以 .zip 结尾的新(空)文件并将其挂载到 /mnt。由于您希望 ZIP 文件最终位于folder_B 中,因此我们将在那里创建它:
# rm -f /folder_B/my_files.zip
# fuse-zip /folder_B/my_files.zip /mnt
您的帖子不清楚,但听起来您希望 .ZIP 文件包含folder_C,然后所有文件都驻留在那里。因此,我们将在 /mnt 上的 .ZIP 文件内创建folder_C:
# mkdir /mnt/folder_C
现在您只需进入folder_A并将所有要压缩的文件移动到/mnt/folder_C中:
# cd /folder_A
# mv file1 file2 ... fileN /mnt/folder_C
最后,卸载并检查 ZIP 文件:
# umount /mnt
# unzip -v /folder_B/my_files.zip
我意识到这看起来很复杂,但基本的四个步骤是:
# 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
我并不是说这个方法比其他解决方案更好或更差,只是一种不同的方法。我希望你觉得它很有趣。