Ich dachte rm entfernt die Dateien in alphabetischer Reihenfolge, aber es ist nicht nach meiner Ausführung.Linux rm -rf * Aufträge löschen?
Also, was ist die Reihenfolge der Befehl rm executation?
Ich dachte rm entfernt die Dateien in alphabetischer Reihenfolge, aber es ist nicht nach meiner Ausführung.Linux rm -rf * Aufträge löschen?
Also, was ist die Reihenfolge der Befehl rm executation?
Es ist nicht rm
selbst bietet die sortierte Natur, es ist die Shell-Erweiterung. Wenn Sie rm *
geben sind, die Schale würde das wie etwas erweitern:
rm aaa bbb ccc
und rm
würden nie sogar sehen ein *
Argument. By the way, ich bin nicht sicher, dass sortierter Verhalten für alle Schalen gewährleistet ist, aber es ist sicherlich für bash
, gemäß der manpage:
... mit einer alphabetisch sortierten Liste von Dateinamen ersetzt passend die Muster.
Der Befehl rm -rf *
ist ein etwas seltsamer, hybrider Fall da, auch wenn die Shell die *
Einträge sortiert, das ist nach wie vor nur für die erste Ebene der Einträge.
Daher rm -rf *
gut kann erweitern:
rm -rf aa_dir bb_dir cc_dir
aber es ist völlig bis zu wie rm
Arbeiten intern in Bezug auf die Reihenfolge der Bearbeitung der Einträge unter diesen Verzeichnissen (obwohl offensichtlich ist es eine sichere Wette Alle Einträge in einem Verzeichnis werden vor dem Verzeichnis selbst gelöscht).
Mehr als wahrscheinlich wird es nur readdir()
oder etwas Ähnliches verwenden, das Sachen basierend auf wie sie in den Verzeichnisakten eher als einige alphabetische Ordnung geordnet werden.
In jedem Fall sollte die Reihenfolge, in der sie gelöscht werden, wahrscheinlich keine Rolle spielen - sie werden schließlich alle gelöscht, vorausgesetzt, Berechtigungen erlauben.
Danke! es ist hilfreich! Ich habe viel gegoogelt, es gibt viele nicht detaillierte Antworten. –
http://unix.stackexchange.com/questions/161770/how-does-rm-r-go-about-recurisely-removing-in-what-order – runDOSrun