mkdir -p im Mac

8

Ich habe die Beschreibung der OSX Man Seite gelesen. Sie hat eine Beschreibung wie die folgende bezüglich mkdir -p :

  

-p

     

Erstellen Sie nach Bedarf Zwischenverzeichnisse. Wenn diese Option nicht angegeben wird, muss das vollständige Pfadpräfix jedes Operanden bereits vorhanden sein. Wird diese Option jedoch angegeben, wird kein Fehler gemeldet, wenn ein als Operand angegebenes Verzeichnis bereits existiert. Zwischenverzeichnisse werden mit Berechtigungsbits von rwxrwxrwx (0777) erstellt, die von der aktuellen Umask geändert wurden, sowie Schreib- und Suchberechtigungen für den Eigentümer.

Ich folge dieser Beschreibung nicht ganz. besonders "Wenn diese Option nicht angegeben wird, muss das vollständige Pfadpräfix jedes Operanden bereits vorhanden sein. Andererseits wird mit dieser Option kein Fehler gemeldet, wenn ein als Operand angegebenes Verzeichnis bereits existiert."

Hat jemand ein Beispiel für diese Erklärung?

    
user454083 09.01.2014, 08:04
quelle

3 Antworten

17

Gegeben diese Verzeichnisstruktur:

%Vor%

Das wird offensichtlich funktionieren:

%Vor%

Dies wird nicht funktionieren:

%Vor%

Da /foo/x nicht existiert, kann das Verzeichnis /foo/x/y nicht darunter erstellt werden. Das Präfix /foo/x/ muss vorhanden sein, um /foo/x/y zu erstellen.

Hier kommt -p ins Spiel. Das funktioniert:

%Vor%

/foo/x wird implizit zusammen mit /foo/x/y erstellt.

Wenn Sie versuchen:

%Vor%

Sie erhalten einen Fehler, dass das Verzeichnis bereits existiert. Wenn Sie das tun:

%Vor%

Sie werden keinen Fehler erhalten, es wird einfach stillschweigend alle bereits vorhandenen Verzeichnisse ignorieren und mit dem Ergebnis zufrieden sein, ohne etwas zu tun.

    
deceze 09.01.2014, 08:28
quelle
2

Stellen Sie sich vor, Sie hätten einen leeren Ordner, und Sie möchten ein Unterverzeichnis namens "d1" und ein Unterverzeichnis in "d1" namens "d2" erstellen. Normalerweise müssen Sie dies tun:

%Vor%

Mit der Option "-p" können Sie mkdir das Zwischenverzeichnis (d1) für Sie erstellen lassen:

%Vor%

Das Bit, nach dem du fragst, sagt, wenn "d1" bereits existiert und du "mkdir -p" benutzt, ist es egal, dass es bereits da ist und es keine Fehlermeldungen geben wird.

    
Mark Setchell 09.01.2014 08:31
quelle
1

Dies funktioniert mit Version 10.10.4

%Vor%     
Luis Rodriguez 02.08.2015 16:01
quelle

Tags und Links