Wie füge ich rekursiv eine Datei zum aktuellen Verzeichnis sowie zu allen Unterverzeichnissen hinzu (oder berühre sie)?
Zum Beispiel
möchte ich diesen Verzeichnisbaum drehen:
.
├── 1
│ ├── A
│ └── B
├── 2
│ └── A
└── 3
├── A
└── B
└── I
9 directories, 0 files
in
.
├── 1
│ ├── A
│ │ └── file
│ ├── B
│ │ └── file
│ └── file
├── 2
│ ├── A
│ │ └── file
│ └── file
├── 3
│ ├── A
│ │ └── file
│ ├── B
│ │ ├── file
│ │ └── I
│ │ └── file
│ └── file
└── file
9 directories, 10 files
bash
command-line
directory
recursive
Trevor Hickey
quelle
quelle
find . -type d -exec touch {}/file\;
Wenn Sie nur eine leere Datei erstellen möchten, können Sie
touch
einen Shell-Glob verwenden. In zsh:In Bash:
Tragbar können Sie verwenden
find
:Bei einigen
find
Implementierungen, aber nicht bei allen, können Sie schreibenfind . -type d -exec touch {}/file \;
Wenn Sie Referenzinhalte kopieren möchten, müssen Sie
find
in einer Schleife aufrufen . In zsh:In Bash:
Tragbar:
quelle
Wenn Sie
touch
Dateien mit dem Namen $ name im aktuellen Verzeichnis und in allen Unterverzeichnissen verwenden möchten, funktioniert dies wie folgt:Beachten Sie, dass der Kommentar von ChuckCottrill zur Antwort von terdon NICHT funktioniert, da nur
touch
die Datei $ name im aktuellen Verzeichnis und das Verzeichnis selbst verwendet werden.Es werden keine Dateien in Unterverzeichnissen erstellt, wie vom OP angefordert, während diese Version hier dies tut.
quelle
Um tatsächlich nur eine Datei erstellen, können Sie
touch
mitfind
:quelle