
フォルダー A からいくつかのファイルを個別に圧縮し、同じディレクトリのフォルダー B に移動する必要がありますが、これには時間がかかります。そこで、圧縮するすべてのファイルを新しいフォルダー (c) に移動し、それを圧縮してフォルダー B に移動することを考えました。いくつかのコマンドでこれを行うことは可能ですか? 提案を歓迎します。
答え1
おそらく、シェルタイプのスクリプトが役立つでしょう:
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 インストールのプラグインをコピーし、それを zip ファイルに圧縮するとします (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
複雑に見えますが、基本的な 4 つの手順は次のとおりです。
# 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
この方法が他の解決策よりも優れているとか劣っているとか言っているわけではなく、単に別の方法であるというだけです。興味を持っていただければ幸いです。