Comment ajouter (ou toucher) récursivement un fichier dans le répertoire courant, ainsi que dans tous les sous-répertoires?
Par exemple,
je voudrais transformer cette arborescence de répertoires:
.
├── 1
│ ├── A
│ └── B
├── 2
│ └── A
└── 3
├── A
└── B
└── I
9 directories, 0 files
dans
.
├── 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
la source
la source
find . -type d -exec touch {}/file\;
Si vous souhaitez simplement créer un fichier vide, vous pouvez utiliser
touch
et un glob shell. En zsh:En bash:
De manière portable, vous pouvez utiliser
find
:Certaines
find
implémentations, mais pas toutes, vous permettent d'écrirefind . -type d -exec touch {}/file \;
Si vous souhaitez copier du contenu de référence, vous devrez appeler
find
en boucle. En zsh:En bash:
Portablement:
la source
Lorsque vous voulez des
touch
fichiers appelés $ name dans le répertoire courant et dans tous les sous-répertoires, cela fonctionnera:Notez que le commentaire de ChuckCottrill à la réponse de terdon ne fonctionne PAS, car il ne contiendra que
touch
le fichier appelé $ name dans le répertoire courant et le répertoire lui-même.Il ne créera pas de fichiers dans les sous-répertoires comme demandé par l'OP, contrairement à cette version ici.
la source
Pour créer simplement un fichier, vous pouvez utiliser
touch
avecfind
:la source