Gibt es eine Methode, um in der Shell alle Dateien zu finden, die mit einem Dateimuster übereinstimmen, einschließlich der Dateien in Archiven (speziell: zip-Archive)?
Das Simulationspaket "VASP" erzeugt unter anderem Dateien mit dem Namen "OUTCAR". Diese Dateien sind jetzt auf Hunderte von Ordnern verteilt, die meisten, aber nicht alle, wurden komprimiert, um inkrementelle Sicherungen zu beschleunigen, indem die Unordnung der Dateien verringert wurde. Ich möchte jetzt alle komprimierten und nicht komprimierten OUTCAR-Dateien als Skript ausführen.
Natürlich könnte ich ein Skript schreiben, das "find" verwendet, um die entpackten Dateien zu finden, und eine Kombination aus find, grep und unzip, um die entpackten Dateien zu finden, aber eine Standardlösung, falls vorhanden, wäre vorzuziehen, da dies leicht möglich wäre Behandle ZIP-Dateien wie schreibgeschützte Ordner in meinen Skripten.
Im Idealfall gibt es eine Reihe von Befehlen, die das Verhalten von allgemeinen Shell-Befehlen emulieren cat
, grep
mit der find
Ausnahme, dass sie ZIP-Dateien als Teil von Dateinamen zulassen.
Ich würde solche Tools nicht benötigen, um geschachtelte Zip-Dateien verarbeiten zu können. Der Grund, warum ich von .tar.gz
zu gewechselt bin , .zip
ist das Vorhandensein eines Dateiindexes, auf den zugegriffen werden kann, ohne etwas zu extrahieren (ein ziemlicher Geschwindigkeitsunterschied für 100-MB-Archive mit hoher Komprimierung), der teilweise verloren geht, wenn verschachtelte Archive betroffen sind.
Nebenbei bemerkt verwende ich Windows 7 mit Cygwin (obwohl dies nur einen Unterschied in Bezug auf die Leistung der Prozesserstellung bedeuten sollte).
OUTCAR
richtig ist? Nicht in den Dateien, die die Zeichenfolge enthalten, sondern nur in den Dateien, die so benannt sind?