Arşiv içeriği de dahil olmak üzere dosyaları listeleme


1

İçerisinde, arşiv içindekiler de dahil olmak üzere bir dosya düzeniyle eşleşen tüm dosyaları bulmak için bazı yöntemler var mı (özellikle: zip arşivleri)?


"VASP" simülasyon paketi, diğerleri arasında "OUTCAR" adlı dosyaları üretir. Bu dosyalar artık, çoğu, ancak hepsi değil yüzlerce klasöre dağılmıştır, bu da dosya yığınını azaltarak artan yedeklemeleri hızlandırmak amacıyla sıkıştırılmıştır. Şimdi tüm bu sıkıştırılmış ve sıkıştırılmamış OUTCAR dosyalarında komut dosyası olarak çalıştırmak istiyorum.

Elbette, sıkıştırılmış dosyaları bulmak için "find" komutunu ve sıkıştırılmış dosyaları bulmak için find, grep ve unzip komutlarını içeren bir komut dosyası yazabilirim, ancak varsa kolayca standart bir çözüm tercih edilebilirdi. komut dosyalarımdaki salt okunur klasörler gibi zip dosyalarını işlemden geçirin.

İdeal olarak , zip dosyalarına dosya adlarının bir parçası olarak izin vermeleri dışında cat, ortak kabuk komutlarının davranışını taklit eden bir takım komutlar olacaktır .grepfind

Bu tür araçların iç içe geçmiş zip dosyalarını kullanabilmesini istemem. Ben den anahtarlı çok nedeni .tar.gzile .zipiç içe arşivleri işin içine girdiğinde kısmen kaybolur şey (yüksek sıkıştırma ile 100 MB arşivleri için oldukça hız farkı) ayıklanması olmadan erişilebilen bir dosya indeksi varlığıdır.

Bir yandan, Windows 7'yi Cygwin ile kullanıyorum (bu sadece işlem oluşturma performansıyla ilgili bir fark yaratmalı).


Adı OUTCARdoğru olan tüm dosyaları (sıkıştırılmış veya değil) bulmak mı istiyorsunuz ? Dizeyi içeren dosyalarda değil, yalnızca adlandırılmış dosyalarda mı?
terdon

Yanıtlar:


0

Zip dosyası içeriği wint unzip komutunu bu şekilde listeleyebilirsiniz

 unzip -l file.zip

Düzenleme: Aslında bu cevap , başarmaya çalıştığınız şey için çok yararlı olabilir


Windows'ta, cygwin ile bile, sigorta uygun değildir. Dokan'ı bir kez kullanmaya çalıştım, ancak faydalı sonuç alamadım. Sanırım sadece bir yapıştırıcı kod taklit edici finddavranışına gidiyorum .
kdb

0

OSX kullanıyorsanız, aynı programları kullanarak az önce adlarını da deneyin. Hem sıkıştırılmış hem de sıkıştırılmış dosyaları aşındırırlar.

Man sayfalarından:

zgrep, zegrep, and zfgrep act like grep, egrep, and fgrep, respectively, but accept input files compressed with the compress(1) or gzip(1) compression utilities.

ve

zcat  is identical to gunzip -c.

Debian linux'ta

zgrep

Zip'i silen ve içinden geçiren bir kod sarmalayıcıdır, böylece en azından kendiniz yazmak zorunda kalmazsınız.


Bu araçlar zip arşivlerinde çalışmaz. Hata mesajından yola çıkarak tek bir dosya içeriyorsa çalışacaklardı, ancak bu * .zip arşivlerinin amacı değil.
kdb

0

Python os.walk örneğini genişletmek için sadece birkaç dakika çalışılmalıdır. uygun kütüphane ve kalıbı kullanarak içindeki dosya adlarını eşleştirin. (İşe gitmek zorunda olduğum için üzgünüm aslında sizin için yazamıyorum).

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.