so weiß ich zum Beispiel, wie man mehrere Verzeichnisse gleichzeitig erstellt.
mkdir -p tree/{dir1,dir2,dir3}
aber wie erstelle ich ein Verzeichnis und lege gleichzeitig Dateien darin ab? Letztendlich möchte ich dies in vielen gleichzeitig tun.
Antwort1
Es gibt hierfür keinen einzelnen Befehl, Sie können aber Ihren eigenen erstellen:
mkpath(){ mkdir -p ${1%/*} && mkfile 0 $1; }
Dieses kann mit einem einzigen Argument aufgerufen werden, das den Pfad einer zu erstellenden Datei angibt. Alle Verzeichnisse, die auf dem Weg erstellt werden müssen, werden erstellt. Anschließend wird eine leere Datei mit dem angegebenen Dateinamen erstellt, z. B.
mkpath dir1/dir2/dir3/file.txt
Notiz: Dies ist eine Beispielfunktion, die nicht gründlich getestet wurde, um verschiedenen Eingaben und Situationen gerecht zu werden. Um Robustheit zu gewährleisten, kann eine geeignete Fehlerabfangung erforderlich sein.
Da es die Merkmale seiner Komponentenfunktionen mkdir
und erbt, bleiben zwei wichtige Merkmale in der aktuellen Version mkfile
erhalten :mkpath
- Es erscheint sicher, einen Pfad anzugeben, der bereits vorhandene Verzeichnisse enthält. Diese Verzeichnisse und ihre Inhalte werdennichtüberschrieben werden;
- Umgekehrt, wenn eine Datei am angegebenen Ort existiert,Willedurch eine leere Datei überschrieben und der alte Dateiinhalt kann nicht wiederhergestellt werden.