Ich habe versucht, mithilfe der Unity Lens File-Suche nach *.*
Last Modified = All, Type = Videos und Size = All zu suchen und zu filtern, aber nichts gefunden, obwohl ich weiß, dass sich in meinem Bilderordner einige .3gp-Dateien befinden. Ich weiß, dass ich auch zahlreiche Videodateien auf einem anderen Laufwerk im Dateisystem habe. Ich habe eine Liste wahrscheinlicher Erweiterungen zusammengestellt und zahlreiche Iterationen des find
Befehls unter Verwendung dieser mit find ./ -name "* .ext" -o (etc, etc, ad nauseum) ohne jegliches Glück versucht. Was ist die Lösung?
10
Antworten:
Alternative: Suche in Datei :
oder wenn Sie nur die Dateinamen wollen ...
-N, --no-pad
: Füllen Sie keine Dateinamen auf-i, --mime
: Bewirkt, dass der Befehl file anstelle von herkömmlichen Zeichenfolgen vom Typ MIME Zeichenfolgen ausgibt. So kann es sagen 'Text / Ebene; Zeichensatz = us-ascii 'anstelle von' ASCII-Text '. Damit diese Option funktioniert, ändert die Datei die Art und Weise, wie Dateien verarbeitet werden, die vom Befehl selbst erkannt werden (z. B. viele der Textdateitypen, Verzeichnisse usw.), und verwendet eine alternative "magische" Datei. (Siehe den Abschnitt DATEIEN unten).Der Abschnitt DATEIEN verweist auf:
file
ist zwar langsamwwwwwwwwwwwwwwwwww (es öffnet alle Dateien, die gefunden werden), hat aber den Vorteil, dass Sie nicht alle diese Erweiterungen hinzufügen müssen.Verwenden von find:
quelle
Ich kann mir vorstellen, dass dies als 1-Liner möglich ist, aber es schien etwas umständlich zu sein.
findvids.sh
Deshalb habe ich ein Skript erstellt, um das Starten und Bearbeiten zu vereinfachen, und es so genannt. Das hat bei mir funktioniert.Hinweis: Ich habe möglicherweise nicht ALLE Videodateitypen behandelt, aber ich bin sicher, dass ich die meisten davon habe. Eine bemerkenswerte Ausnahme ist .mkv, da dies das Zielformat für das Projekt ist und ich die bereits verarbeiteten Dateien nicht finden muss. Es sollte sehr einfach sein, dem Skript zusätzliche Formate (Erweiterungen) hinzuzufügen, die Ihren Anforderungen entsprechen, indem Sie das Muster untersuchen und entsprechend anpassen, während die Anführungszeichen am Anfang und Ende des Ausdrucks beibehalten werden. Beachten Sie, dass Dateien, für die Sie keine Leseberechtigung haben, nicht gefunden werden.
Bearbeiten basierend auf Kommentar: Das
$
am Ende der Erweiterung bedeutet, dass der Suchbegriff am Zeilenende gefunden werden muss. Wenn wir stattdessen den Zeilenanfang abgleichen möchten, verwenden wir ihn^
vor dem Begriff, den wir abgleichen möchten. Diese Anker finden Sie hier näher erläutert .Ich habe einen Geschwindigkeitsvergleich mit locate durchgeführt und die Ergebnisse waren:
vs.
Unerwartet zu finden ist schneller. Ich werde diesen Ansatz verwenden.
Bearbeiten: Weitere Tests zeigen an, dass das Auffinden auf einem anderen Computer schneller war. Ich denke, meine anfänglichen Geschwindigkeitstestergebnisse waren aufgrund von Caching nicht gut.
Quellen:
man find
man grep
/programming/7190565/unix-find-multiple-file-types
quelle
touch hello.mp4
erstellt keine Videodatei>: - D und Sie möchten sie möglicherweise ändern, um sielocate
zu beschleunigen.touch
Da dies jedoch auf diesem System nicht durchgeführt wurde, ist es in diesem Fall nicht wirklich relevant. Was das Auffinden betrifft, müsste ich dann vorher laufenupdatedb
, um aktuelle Daten zu haben, oder nicht?