作業ディレクトリを変更する


13

私はディレクトリを圧縮しようとしています

/home/cyrus/sql

そして、フォルダーを圧縮するときに作業ディレクトリを変更したかったのです。

/ $ zip -b /home/cyrus sql.zip /home/cyrus/sql

しかし、zipファイルをチェックすると:

/ $ unzip -l sql.zip

Archive:  sql.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2013-05-30 10:59   home/cyrus/sql/
  1776642  2013-05-23 10:22   home/cyrus/sql/wordpress.sql
---------                     -------
  1776642                     2 files

ルートフォルダーはsql。私は何を間違えましたか?

回答:


10

からman zip

-b path

 --temp-path path

一時的なzipアーカイブに指定されたパスを使用します。例えば:

zip -b /tmp stuff *

一時的なzipアーカイブをディレクトリ/ tmpに配置し、完了したらstuff.zipを現在のディレクトリにコピーします。このオプションは、既存のアーカイブを更新し、この古いアーカイブを含むファイルシステムに、古いアーカイブと新しいアーカイブの両方を同時に保持するのに十分なスペースがない場合に役立ちます。場合によっては、ストリーミング時にデータ記述子の必要性を回避するのにも役立ちます。このオプションを使用すると、zipがアーカイブファイルをコピーする際に宛先ファイルシステムに追加の時間がかかることに注意してください。

デフォルトでzipは、現在のディレクトリからの相対パスが保存されます。zipファイルでsqlディレクトリをルートとして使用する場合は、/home/cyrusディレクトリからコマンドを実行する必要があります。


14

あなたがしたい場合はzip、指定したディレクトリの内容と保存zip現在のディレクトリ内のファイルを、あなたはそれを書くことができます。

(cd /some/dir && zip -r - dir-there) > file.zip

5

-bzip一時ファイルを配置する場所を指定します。ディレクトリをどこかに変更する必要はありません。からman zip

 -b path
      Use the specified path for the temporary  zip  archive.

これを試して:

cd /home/cyrus && zip sql.zip sql

またはcd /home/cyrus && zip /sql.zip sql、ルートにzipファイルを作成する場合。
トリプリー

2

この権利を理解しているかどうかはわかりませんが、-bはルートフォルダーを変更しません。一時的なzipアーカイブをディレクトリ/ home / cryusに配置し、完了したらsql.zipを現在のディレクトリにコピーします。このオプションは、既存のアーカイブを更新する場合にのみ役立ち、この古いアーカイブを含むファイルシステムには、古いアーカイブと新しいアーカイブの両方を同時に保持するための十分なスペースがありません。

使用してみてください:

-j保存されたファイルの名前のみを保存し(パスをジャンク)、ディレクトリ名は保存しません。デフォルトでは、zipは(現在のパスを基準とした)フルパスを保存します。


1
-j正しくないかもしれません。OPはすべてのパスを削除するのではなく、相対パスを保持することを望んでいると思います。
トリプリー

2

ステファンの答えに触発された:

(cd /home/cyrus; zip -r sql.zip sql;)

結果:

  1. / home / cyrus /にsql.zipがあります
  2. sql.zipにはsql /ディレクトリとそのすべてのコンテンツが含まれています
  3. 最初のPWDは変わりません

4
これはどうですか?
スティーブン

0

zipしようとしているフォルダを現在のディレクトリにシンボリックリンクする方が簡単な場合があります。そうすれば、あなたは今いる場所に留まることができます。

ln -s /path/to/whatever .
zip -r myzip whatever

必要に応じてシンボリックリンクをrmします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.