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
, find
werden alle Ordner und Dateien zurückgegeben. Wenn im zweiten Befehl ein Ordner gefunden wird, ls -lh
listet 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.