次のフォルダ構造があります
folder
|
|--foo.txt
|
|--sub_folder
|
|--bar.txt
zipアーカイブにルートフォルダを含めずにフォルダ(ファイルとサブフォルダ)の内容を圧縮したいと思います。
私はコマンドを試しました
zip -r package.zip folder
ただし、これにはルートフォルダが含まれます。また、次の形式を試しました。
zip -j -r package.zip folder
ただし、これによりすべてのディレクトリ構造が平坦化され、ファイルのみが含まれます。内部ディレクトリ構造を維持しますが、親フォルダを無視する方法は?
ベストアンサー1
zip
パスは現在のディレクトリ(呼び出し時)に基づいて保存されるため、変更する必要があります。
(cd folder && zip -r "$OLDPWD/package.zip" .)
&&
ディレクトリが正しく変更された場合にのみ実行し、角かっこzip
はサブシェルのすべてのエントリを実行するため、現在のディレクトリは最後に復元されます。OLDPWD
計算を避ける相対パスを使用してくださいpackage.zip
。