7zipユーティリティを使用してアーカイブ/圧縮したいファイルがたくさんあります。すべて同じフォルダにあります。各アーカイブは、アーカイブされるファイルと同じ名前を持つ必要があります。
たとえば、ファイルがある場合は、1.txt
アーカイブも2.txt
必要です。3.txt
1.7z
2.7z
私はいくつかのバッチスクリプトを見つけましたが、bashスクリプトが必要です。
以下を使用してすべてのファイルを一覧表示できます。
for i in *.txt; do echo $i; done
しかし、7zipコマンドでは動作させることはできません。7z a 'archive.7z' 'file.txt'
答え1
for i in *.txt; do 7z a "${i%%.*}.7z" "$i"; done
このコマンドはうまくいくようです。ファイル名にスペースが含まれている場合は、区切り文字を改行文字に設定してみてください。私はこのコマンドを使ってそれを達成しましたIFS=$'\n'
。
${i%%.*}
私の場合、この機能は拡張機能を削除するために使用されました.txt
。アーカイブがこのように見えるようにするには、それを.txt.7z
使用すると$i.7z
機能します。