web-dev-qa-db-ja.com

Zipを作成-ディレクトリ構造を無視

コマンドを使用してZipを作成する必要があります

Zip /dir/to/file/newZip /data/to/Zip/data.txt

これは機能しますが、作成されたZipファイルは、未加工ファイルのディレクトリを模倣したディレクトリ構造を作成します。必要のない余分なフォルダーがたくさんあります。

マニュアルページやグーグルハントをざっと見ただけで答えが見つかりませんでした。

187
Jake

-jを使用できます。

-j
--junk-paths
          Store just the name of a saved file (junk the path), and do  not
          store  directory names. By default, Zip will store the full path
          (relative to the current directory).
310
Lars Kotthoff

-jオプションを使用します。

   -j     Store  just the name of a saved file (junk the path), and do not
          store directory names. By default, Zip will store the full  path
          (relative to the current path).
32
Dan D.

-jの使用は、-rオプションと一緒には機能しません。
したがって、回避策は次のようになります。

cd path/to/parent/dir/;
Zip -r complete/path/to/name.Zip ./* ;
cd -;

またはインラインバージョン

cd path/to/parent/dir/ && Zip -r complete/path/to/name.Zip ./* && cd -

/dev/null出力を画面に表示したくない場合は、cd -に出力を向けることができます

24
Vikas Tawniya

やや関連-私はディレクトリに対して同じことをする解決策を探していました。残念ながら、これに対して-jオプションは機能しません:(

ここでそれを達成する方法に関する良い解決策: https://superuser.com/questions/119649/avoid-unwanted-path-in-Zip-file

17
flaky

または、ファイルへの一時的なシンボリックリンクを作成できます。

ln -s /data/to/Zip/data.txt data.txt
Zip /dir/to/file/newZip !$
rm !$

これはディレクトリに対しても機能します。

2
MirkoBanchi

-jrmオプションを使用して、ファイルおよびディレクトリ構造を削除するだけです。

Zip -jrm /path/to/file.Zip /path/to/file
0
Qader Dorosti