内容には次のようなZIPファイルがあるとしましょう。
# file: with_out_dir.zip
file1.txt
file2.cpp
file3.js
some_sub_dir/
- file_in_subdir.txt
file4.xml
しかし、このように見えるかもしれません
# file: with_dir.zip
archive/
- file1.txt
- file2.cpp
- file3.js
- some_sub_dir/
-- file_in_subdir.txt
- file4.xml
今ではbashスクリプトからこれらのファイルを抽出しますが、とにかく/var/sample/
次の場所に抽出する必要があります。
# expected output
/var/
- sample/
-- file1.txt
-- file2.cpp
-- file3.js
-- some_sub_dir/
--- file_in_subdir.txt
-- file4.xml
スクリプトでこれを達成するための最良の方法は何ですかbash
?
現在、私はunzip
zipファイルを抽出するためにこのツールを使用していますが、使いやすい他のコマンドラインツールを使用することもできます。
ベストアンサー1
私は単に提供する:
- 新しいディレクトリに解凍
- 抽出後に新しいディレクトリにサブディレクトリが1つしか含まれていない場合は、そのディレクトリ内のすべてのファイルを1レベル上に移動して元のサブディレクトリを削除します。
しかし、アーカイブ(tar、zipなど)を作成してください。いいえアーカイブのすべてのメンバーをサブディレクトリに配置する邪悪な。人々がなぜこれをするのか分からない!