Ist es möglich, dabei einen zuverlässigen Fortschrittsbalken (oder nur eine zuverlässige Information darüber, wie lange es dauern wird) zu erhalten updatedb
?
8
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:oder ungefähr gleich:
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:
Mit diesem Wert können wir berechnen, wie weit wir gekommen sind, während der
updatedb -v
Befehl ausgeführt wird:Dies ist sehr ineffizient, da
printf
für jede Zeile in der Ausgabe von aufgerufen wirdupdatedb -v
. Besser, wenn wirprintf
nur für einige der Zeilen.quelle
df -i
Berichte 0 in allen Spalten für /. Möglicherweise kann das Extrahieren der Dateizahl der aktuellen Datenbank auslocate -S
(oder einem--statistics
anderen ähnlichen Schalter Ihrerlocate
Implementierung) auch als ungefähre Dateizahl verwendet werden.