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

jQuery-Plugin zum Implementieren eines schwebenden Menüs

Lernen Sie jeden Tag ein schwebendes jQuery-Plug-...

CSS3-Filtercode zum Erreichen des Grau- oder Schwarzmodus auf Webseiten

Frontend css3.filter kann nicht nur den Graueffek...

Detaillierte Erklärung zur Verwendung von HTML-Header-Tags

HTML besteht aus zwei Teilen: Kopf und Text ** Da...

Hauptfunktionen von MySQL Innodb: Einfügepuffer

Inhaltsverzeichnis Was ist ein Einfügepuffer? Was...

Beispiel eines Befehls zur Linux-Hardwarekonfiguration

Hardware-Ansichtsbefehle System # uname -a # Kern...

js zur Implementierung eines einfachen Bullet-Screen-Systems

In diesem Artikel wird der spezifische Code von n...

Detaillierte Erklärung der Schritte zum Erstellen eines Vue-Projekts mit Vue-cli

Zuerst müssen Sie Vue-cli installieren: npm insta...

So fügen Sie die Tomcat-Serverkonfiguration zu Eclipse hinzu

1. Fenster -> Einstellungen, um das Eclipse-Ei...

Natives, benutzerdefiniertes Rechtsklickmenü von js

In diesem Artikelbeispiel wird der spezifische Co...

So starten Sie ein JAR-Paket und führen es unter Linux im Hintergrund aus

Der Linux-Befehl zum Ausführen des JAR-Pakets lau...

Zusammenfassung der grundlegenden Kenntnisse zur MySql-Datenbank

Inhaltsverzeichnis Grundlegende Datenbankvorgänge...