GNU/Linux >> LINUX-Kenntnisse >  >> Linux

listet/findet alle regulären Dateien in allen Unterverzeichnissen außer Binärdateien

file /usr/bin/file enthält beispielsweise auf meinem System nicht das Wort "binary" in seiner Ausgabe. Wenn file -i verfügbar ist, enthält es das Wort "binär". Ohne -i , ist es möglicherweise zuverlässiger, auf das Vorhandensein des Wortes "Text" zu prüfen.

find -type f -exec sh -c "file {} | grep text >/dev/null" \; -print

oder

find -type f -exec sh -c "file {} | grep text >/dev/null" \; -ls

Mit -i :

find -type f -exec sh -c "file -i {} | grep -v binary >/dev/null" \; -print

Mit file ist nur eine Annäherung, da Heuristiken verwendet werden, um den Dateityp zu bestimmen, und es keine feste Definition dafür gibt, was eine "binäre" Datei ausmacht. Ist eine leere Datei "binär"? file sagt es ist. Außerdem gibt es viele (normalerweise ungewöhnliche) Möglichkeiten, um falsch positive IDs durch file auszulösen .


Eine andere Möglichkeit wäre, alle Dateien auszuschließen, die entweder für Benutzer, Gruppen oder andere Ausführungsberechtigungen haben:

find . -type f ! -perm /u=x,g=x,o=x

(Wenn Binär gleich Ausführungsberechtigungen ist...)


Linux
  1. Alle Dateien in einem Verzeichnis löschen, dessen Name nicht mit einer Zeile in einer Dateiliste übereinstimmt?

  2. Liste aller Dateien nach Maske im Terminal abrufen?

  3. Alle Python-Dateien im Linux-Dateisystem finden?

  4. Alle Dateien in einem Verzeichnis rekursiv auflisten, einschließlich Dateien in Symlink-Verzeichnissen

  5. Symbolischer Link:findet alle Dateien, die auf diese Datei verlinken

Finden Sie verlorene Dateien mit Scalpel

Alle Grafikdateien mit find auflisten?

Dateiliste von der Suche ausschließen

Löschen Sie übereinstimmende Dateien in allen Unterverzeichnissen

Wie kann ich alle Dateien bearbeiten, die von find in vi in ​​Linux zurückgegeben werden?

Wie listet man alle Dateien einer Partition unter Linux auf?