Bir hedef dizindeki tüm dosyaları tekrarlı bir şekilde nasıl toplarım?


Yanıtlar:


15

Aşağıdaki komutları kullanarak. Değiştir <path_of_your_zips>ZIP dosyalarına ve yol ile <out>Hedef klasörle:

  • GZ dosyaları için

    find <path_of_your_zips> -type f -name "*.gz" -exec tar xf {} -C <out> \;
    

    veya

    find <path_of_your_zips> -type f -name "*.gz" -print0 | xargs -0 -I{} tar xf {} -C <out>
    
  • ZIP dosyaları için

    find <path_of_your_zips> -type f -name "*.zip" -exec unzip {} -d <out> \;
    

    veya

    find <path_of_your_zips> -type f -name "*.zip" -print0 | xargs -0 -I{} unzip {} -d <out>
    

Bu .gz dosyalarıyla çalışıyor mu?
user2028856

1
gelişmiş, Şimdi evet :)
AB

2
Neden olmasın -execgibi find . -type f -name "*.gz" -exec tar xzf {} -C <out> \;?
Elliott Frisch

1
sadece
tarball

1
tar dosyası olmayan gzipli dosyalar bu hatayı verir:tar: This does not look like a tar archive
sonraki bildirime kadar duraklatıldı.

64

gunzipvardır -rseçeneği. Kimden man gunzip:

   -r --recursive
          Travel  the directory structure recursively. If any of the 
file names specified on the command line are directories, gzip 
will descend into the directory and compress all the files it finds
there (or decompress them in  the  case  of gunzip ).

Bu nedenle, dizinde ve tüm alt dizinlerinde gunzipsıkıştırılmış tüm dosyaları ( gunzipşu anda gzip, zip, sıkıştır, sıkıştır-H veya paket tarafından oluşturulan dosyaları açabilir) istiyorsanız /foo/bar:

gunzip -r /foo/bar

Bu, dosya adlarını da boşluklarla işlemden geçirir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.