ディレクトリを変更できないスクリプトからZipコマンドを呼び出しています。データがあるディレクトリからdata/kit123/
にあるもののZipファイルを作成する必要がありますが、Zipのコンテンツはkit123
のコンテンツのみで、kit123
。
これはディレクトリ構造です
myworkingdir
data
kit123
kitpart1
file.xcf
anotherfile.xcf
kitpart2
...
kit124
...
スクリプトはmyworkingdirで実行され、ディレクトリを変更できません。
電話したら
Zip -r kit123.Zip data/kit123
次に、Zipファイルの構造は
data
kit123
kitpart1
file.xcf
anotherfile.xcf
kitpart2
しかし、私はそれが欲しいです
kit123
kitpart1
file.xcf
anotherfile.xcf
kitpart2
これを達成するために使用できるZipオプションはありますか?作業ディレクトリに依存するのは奇妙に思えます
-jではないことを知っています。 kit123内の構造を破壊する
コメントでメモしているように、スクリプトでディレクトリを変更する方法がわかったので、Zipの相対パスに関する状況を説明します。
おそらく、ターミナルとcd
からkit123
を開くのが最も簡単でしょう。ターゲットディレクトリを作業ディレクトリにする必要があります。ホームディレクトリのベースからコマンドを実行することはできません。または、/home/$USER/..
のすべてのパスを選択します。-j
オプションを使用すると、異なるレベルのパス削除を指定できるtarオプション--strip
と実際には同等のものがないため、すべてのパスが削除されます。
したがって、ターゲットディレクトリ(kit123
)に移動して、次のように入力してください。
Zip -r kit123.Zip *
これは再帰的に(-r
)すべての(*
)ファイルとファイルのディレクトリを現在のディレクトリ(kit123
)に保存し、相対パス(-p
)が自動的に保存されます-j
オプションが存在しない限り、ディレクトリ構造は希望どおりになります。 Kit123
およびサブフォルダー(kitpart1
)とそのファイルが存在します:
kit123
kitpart1
file.xcf
anotherfile.xcf
kitpart2
unzip -l zipfile.Zip
を使用して、Zipファイルの内容を確認できます。
Zip
で使用できる他のオプションの詳細については、man Zip
および buntu manpage online を参照してください。