zipファイルの特定のレイヤー/レベルのみを解凍、unzip [off]を使用

zipファイルの特定のレイヤー/レベルのみを解凍、unzip [off]を使用

このコマンドを使用して、ドキュメントのルートバックアップを含むzipファイルを抽出しました。

unzip /var/www/html/html-2018-01-08-02\:52\:11.zip -d /var/www/html/

これにより、ドキュメントルート内のすべてのデータが抽出されますが、問題が発生します。現在の状態は重複したドキュメントルートです。

/var/www/html/var/www/html/DATA

もちろん、データを再度移動してmvから、重複したドキュメントルートを削除することもできますが、cd /var/www/html && rm -rf /var/www/html最も簡単な回避策はフォームを介して直接実行することですunzip

そもそも重複がないことを願っています。


使い方は? zipファイルの特定のレイヤー/レベルのみを解凍しますかunzip

たとえば、私の郵便番号には次のものが含まれます。

  • 最初の行:/var
  • 2階: /var/www
  • 3階: /var/www/html/

4番目のレベル(もちろん0から始まるインデックスでは3番目のレベル)のインデックスノードだけを抽出したいと思います。

最終状態は次のとおりです。

/var/www/html/DATA

ベストアンサー1

unzipパスごとに抽出するファイルを制限できます。

ワイルドカードの使用:

unzip foo.zip '*/*/*/*'

リテラル構文を使用します。

unzip foo.zip 'var/www/html/*'

たとえば、

$ zipinfo ../1.zip 
Archive:  ../1.zip
Zip file size: 1134 bytes, number of entries: 8
drwxrwxr-x  3.0 unx        0 bx stor 18-Jan-28 13:53 1/
drwxrwxr-x  3.0 unx        0 bx stor 18-Jan-28 13:53 1/2/
drwxrwxr-x  3.0 unx        0 bx stor 18-Jan-28 13:53 1/2/3/
drwxrwxr-x  3.0 unx        0 bx stor 18-Jan-28 13:53 1/2/3/4/
-rw-rw-r--  3.0 unx        0 bx stor 18-Jan-28 13:53 1/2/3/4/d
-rw-rw-r--  3.0 unx        0 bx stor 18-Jan-28 13:53 1/2/3/c
-rw-rw-r--  3.0 unx        0 bx stor 18-Jan-28 13:53 1/2/b
-rw-rw-r--  3.0 unx        0 bx stor 18-Jan-28 13:53 1/a
8 files, 0 bytes uncompressed, 0 bytes compressed:  0.0%
$  unzip ../1.zip '*/*/*/*'
Archive:  ../1.zip
   creating: 1/2/3/
   creating: 1/2/3/4/
 extracting: 1/2/3/4/d               
 extracting: 1/2/3/c

おすすめ記事