Warum liefern diese beiden Suchbefehle unterschiedliche Ergebnisse?

Warum liefern diese beiden Suchbefehle unterschiedliche Ergebnisse?

Ich wollte alle Dateien sehen, die in den letzten 10 Tagen geändert wurden und wem sie gehörten. Daher habe ich Folgendes eingegeben, um eine Vorstellung davon zu bekommen, wie viele Ergebnisse zurückgegeben würden:

find . -maxdepth 1 -mtime -10

Dann habe ich den Befehl gegeben;

find . -maxdepth 1 -mtime -10 -exec ls -lh {} \;

Beide Befehle liefern sehr unterschiedliche Ergebnisse, aber ich verstehe nicht, warum. Kann jemand erklären, was passiert und warum sie unterschiedliche Ergebnisse liefern?

Antwort1

Da Sie die Option nicht verwenden -type f, findwerden alle Ordner und Dateien zurückgegeben. Wenn im zweiten Befehl ein Ordner gefunden wird, ls -lhlistet der Befehl dessen Inhalt auf, was zu mehr Ergebnissen führt als der erste Befehl.

$ find . -maxdepth 1 -mtime -10 | wc -l
63
$ find . -maxdepth 1 -mtime -10 -exec ls -lh {} \; | wc -l
313

Du solltest benutzen:

find . -maxdepth 1 -type f -mtime -10

find . -maxdepth 1 -type f -mtime -10 -exec ls -lh {} \;

um nur Dateien aufzulisten.

verwandte Informationen