抽出するには
zipinfo
このプロセスの一部として使用できzip
ます。パッケージからのプログラムです。
zipinfo -2 example.zip
では、ファイル名のみが表示されますexample.zip
。次のようになります。
file1-long-name-...-bla-bla.html
file2-long-name-...-bla-bla.html
この機能を使用してすべてのファイルを抽出できます。
zipinfo -2 example.zip | while read i;
do
long_fname=${i%.*}
unzip -p -c example.zip "$i" > "${long_fname:0:250}.${i##*.}"
done;
long_fname=${i%.*}
:長いファイル名から拡張子を削除するため、ファイル名が256文字未満の場合。拡張子が重複することはありません。
${long_fname:0:250}.${i##*.}
:正当な文字数で新しいファイル名を作成し、.
ファイルの実際の拡張子も追加します。
単純にファイルリストにループして、それぞれを256文字の新しい正当なファイル名で抽出します。
名前を変更するには
zipnote
コマンドを使用できますzip
。これもパッケージの一部です。
まず、zipファイルのバックアップを取得します。
次のコマンドを実行します。
zipnote example.zip > names
エディターを使用して名前を開くと、次のようになります。
@ file name long in zip and a lot of other strings in the file name
@ (comment above this line)
@ (zip file comment below this line)
次のような新しいファイル名を追加します。
@ file name long in zip and a lot of other strings in the file name
@=new short name for above file
@ (comment above this line)
@ (zip file comment below this line)
次に、ファイル名を変更するには:
zipnote -w example.zip < names
すべての名前を変更しました。これを自動的に行う簡単なスクリプトを書くこともできます。
unzip -l <ARCHIVE>
ですか?名前をどのように切り捨てますか?抽出中にアーカイブ内のディレクトリ構造を保持しますか?