Vergleich der Effizienz verschiedener Methoden zum Löschen von Dateien in Linux

Vergleich der Effizienz verschiedener Methoden zum Löschen von Dateien in Linux

Testen Sie die Effizienz des Löschens einer großen Anzahl von Dateien unter Linux.

Erstellen Sie zunächst 500.000 Dateien

$ test for i in $(seq 1 500000);do echo text >>$i.txt;done

1. rm löschen

$ Zeit rm -f *
zsh: Möchten Sie wirklich alle Dateien in /home/hungerr/test [yn] löschen? y
zsh: Argumentliste zu lang: rm
rm -f * 3,63 s Benutzer 0,29 s System 98 % CPU 3,985 gesamt

rm funktioniert aufgrund der großen Anzahl an Dateien nicht.

2. Suchen und löschen

$ Zeit finden ./ -type f -exec rm {} \;
finde ./ -type f -exec rm {} \; 49,86 s Benutzer 1032,13 s System 41 % CPU 43:19,17 gesamt

Ungefähr 43 Minuten auf meinem Computer. . . . . . Ich habe es gelöscht, während ich das Video angesehen habe.

3. Suchen mit Löschen

$ Zeit finden ./ -Typ f -löschen
finden ./ -type f -delete 0,43 s Benutzer 11,21 s System 2 % CPU 9:13,38 gesamt

Es dauert 9 Minuten.

4. rsync löschen

# Erstellen Sie zunächst einen leeren Ordner blanktest
$ Zeit rsync -a --delete blanktest/ test/
rsync -a --delete blanktest/ test/ 0,59 s Benutzer 7,86 s System 51 % CPU 16,418 Gesamt 16 s

Sehr gut und kraftvoll.

5. Python löschen

Betriebssystem importieren
Zeit importieren
 
def main():  
  für Pfadnamen, Verzeichnisnamen, Dateinamen in os.walk('/home/Benutzername/test'):    
    für Dateinamen in Dateinamen:      
      Datei = os.path.join(Pfadname,Dateiname)      
      os.remove(Datei)     
wenn __name__ == '__main__':
t = Zeit.Timer('main()','von __main__ importiere main')
drucke t.timeit(1) 
 1
2
$ python test.py 529.309022903

Es dauert ungefähr 9 Minuten.

6. Perl löschen

$ Zeit perl -e 'für(<*>){((stat)[9]<(unlink))}'
perl -e 'for(<*>){((stat)[9]<(unlink))}' 1,28 s Benutzer 7,23 s System 50 % CPU 16,784 gesamt 16 s

Das sollte am schnellsten sein.

7. Ergebnisse:

  • rm: Zu viele Dateien zum Verwenden
  • Das Suchen mit -exec nach 500.000 Dateien dauerte 43 Minuten
  • Suchen mit -delete 9 Minuten
  • Perl 16sPython 9 Minuten
  • rsync mit -delete 16s

Fazit: rsync ist der schnellste und bequemste Weg, eine große Anzahl kleiner Dateien zu löschen.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung des Problems, dass der Speicherplatz nach dem Löschen der Linux-Datei nicht freigegeben wird
  • Beispielanalyse von Linux-Dateiverwaltungsbefehlen [Berechtigungen, Erstellen, Löschen, Kopieren, Verschieben, Suchen usw.]
  • So gehen Sie mit dem Problem um, dass die Datei gelöscht wird, der Speicherplatz in Linux jedoch nicht freigegeben wird
  • Linux-Unlink-Funktion und wie man Dateien löscht
  • Linux implementiert geplante Sicherungen der MySQL-Datenbank und löscht Sicherungsdateien, die älter als 30 Tage sind
  • Linux sichert regelmäßig die MySQL-Datenbank und löscht vorherige Sicherungsdateien (empfohlen)
  • So löschen Sie Ordner, Dateien und Dekomprimierungsbefehle auf Linux-Servern
  • 5 Möglichkeiten zum Löschen oder Entfernen großer Dateiinhalte in Linux

<<:  V-Bind in Vue verstehen

>>:  Detaillierte Erklärung zur Verwendung von MySQL mysqldump

Artikel empfehlen

So installieren Sie MySQL 8.0 und melden sich bei MySQL unter MacOS an

Folgen Sie dem offiziellen Tutorial, laden Sie da...

Ein umfassendes Verständnis der funktionalen Komponenten von Vue.js

Inhaltsverzeichnis Vorwort Funktionale React-Komp...

Teilen Sie einen auf Ace basierenden Markdown-Editor

Ich denke, Editoren lassen sich in zwei Kategorie...

Eine schnelle Lösung für das Problem der PC- und Mobilanpassung

Beim Erstellen einer Webseite müssen wir normaler...

Vue führt einen einfachen zufälligen Namensaufruf durch

Inhaltsverzeichnis Layoutteil: <div id="a...

Beispielcode zur Implementierung einer einfachen Suchmaschine mit MySQL

Inhaltsverzeichnis Vorwort Einführung Ngram-Vollt...

So setzen Sie das Root-Passwort in mysql8.0.12 zurück

Wenn Sie nach der Installation der Datenbank das ...

Beispiel für das Herunterladen von Dateien mit vue+django

Inhaltsverzeichnis 1. Übersicht 2. Django-Projekt...

Lernen Sie die Grundlagen der JavaScript-DOM-Operationen in einem Artikel

DOM-Konzepte DOM: Dokumentobjektmodell: Das Dokum...

Installieren Sie MySQL 5.7 unter Ubuntu 18.04

Dieser Artikel wurde unter Bezugnahme auf die off...

Tutorial zur MySQL-Datensicherungsmethode mit Multi-Master und One-Slave

Überblick Vorgänge, die auf einer Datenbank ausge...

Verwenden von CSS3 zum Erzielen von Übergangs- und Animationseffekten

Warum sollten wir CSS-Animationen anstelle von JS...