Ist mkdir -p völlig sicher, wenn das Erstellen eines Ordners bereits vorhanden ist

14

Angenommen, ich habe einen Ordner:

./folder/

Darin befinden sich viele Dateien und sogar Unterverzeichnisse.

Wenn ich ausführe:

mkdir -p folder

Ich werde keine Fehler sehen, auch keine Warnungen. Möchten Sie nur bestätigen, ob aufgrund dieses Befehls etwas verloren gegangen ist oder geändert wurde?

AGamePlayer
quelle
2
Die Hilfe von mkdir besagt, dass die Verzeichnisse nur erstellt werden, wenn sie nicht vorhanden sind. Dies impliziert für mich, dass nichts getan wird, wenn das Verzeichnis existiert.
Marco

Antworten:

22

mkdir -p würde Ihnen keine Fehlermeldung geben, wenn das Verzeichnis bereits vorhanden ist und sich der Inhalt für das Verzeichnis nicht ändert.

Manuelle Eingabe für mkdir

ARG
quelle
1
Diese Antwort scheint nicht richtig zu sein. mkdir gibt in der Tat einen Fehler aus, wenn das Verzeichnis existiert, sofern nicht das Flag -p verwendet wird.
Aaron Cicali
irrtümlicherweise könnten Sie nach dem Code wie diesem if(err.code == 'EEXIST')suchen. Diese Bedingung wird erfüllt, wenn das Verzeichnis bereits vorhanden ist.
user403173
12

Ein tragbares Skript wird auf POSIX verlassen, die von sagt mkdir‚s -pOption:

Jeder dir- Operand, der ein vorhandenes Verzeichnis benennt, wird ohne Fehler ignoriert.

und wenn keine Fehler gemeldet wurden, hat die -pOption ihren Job erledigt:

Erstellen Sie fehlende Zwischenkomponenten für Pfadnamen.

Thomas Dickey
quelle
4

mkdir wird Ihnen einen Fehler melden, wenn das Verzeichnis bereits existiert.

mkdir -p gibt KEINEN Fehler aus, wenn das Verzeichnis bereits existiert. Auch das Verzeichnis bleibt unangetastet, dh der Inhalt bleibt unverändert erhalten.

Tushar Vazirani
quelle