Antworten:
Nein, es gibt keine solche Option, es sollte auch keine geben.
Wenn Sie dies messen müssen, müssen Sie zuerst wissen, wie viele Dateien auf Ihrem System vorhanden sind. Dies bedeutet, dass Sie alles zweimal durchlaufen müssen. Dies kann langsam sein
Ein offensichtliches Beispiel ist, dass das Extrahieren von Kernel-Quellcode mit file-roller
langsamer ist als das tar
direkte Ausführen , da der Dateiroller zuerst alle Dateien ausfeilen muss (andernfalls wird der Fortschrittsbalken möglicherweise falsch angezeigt) und Sie auf a warten während vor dem Extraktionsprozess tatsächlich begonnen.
Dies ist keine effiziente Lösung, aber nicht so schlimm, als würde man alles zweimal durchlaufen.
Die Anzahl der von verarbeiteten Dateien updatedb
entspricht:
updatedb -v | wc -l
oder ungefähr gleich:
find / -mount | wc -l
Wir können diese Befehle nicht verwenden, um die Nummer zu erhalten, da sie zweimal wiederholt werden würde.
Wir können jedoch die Anzahl der verwendeten Inodes verwenden, die ungefähr gleich ist:
df -i | grep '/$' | awk '{print $3}'
Mit diesem Wert können wir berechnen, wie weit wir gekommen sind, während der updatedb -v
Befehl ausgeführt wird:
count=$(df -i | grep '/$' | awk '{print $3}')
sudo updatedb -v | while read
do
printf "%3d\r" $((100 * (++i) / count))
done
Dies ist sehr ineffizient, da printf
für jede Zeile in der Ausgabe von aufgerufen wird updatedb -v
. Besser, wenn wir printf
nur für einige der Zeilen.
count=$(df -i | grep '/$' | awk '{print $3}')
sudo updatedb -v | while read
do
if (( ++i % (count/20) == 0 )); then
printf "%3d\r" $((100 * i / count))
fi
done
df -i
Berichte 0 in allen Spalten für /. Möglicherweise kann das Extrahieren der Dateizahl der aktuellen Datenbank aus locate -S
(oder einem --statistics
anderen ähnlichen Schalter Ihrer locate
Implementierung) auch als ungefähre Dateizahl verwendet werden.