Como adiciono (ou toco) recursivamente um arquivo ao diretório atual, bem como a todos os subdiretórios?
Por exemplo,
eu gostaria de transformar esta árvore de diretórios:
.
├── 1
│ ├── A
│ └── B
├── 2
│ └── A
└── 3
├── A
└── B
└── I
9 directories, 0 files
para dentro
.
├── 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
fonte
fonte
find . -type d -exec touch {}/file\;
Se você apenas deseja criar um arquivo vazio, pode usar
touch
e um shell glob. No zsh:Na festança:
Portably, você pode usar
find
:Algumas
find
implementações, mas não todas, permitem escreverfind . -type d -exec touch {}/file \;
Se você deseja copiar algum conteúdo de referência, precisará chamar
find
em loop. No zsh:Na festança:
Portably:
fonte
Ao desejar
touch
arquivos chamados $ name no diretório atual e em todos os subdiretórios, isso funcionará:Observe que o comentário de ChuckCottrill à resposta por terdon NÃO funciona, pois apenas
touch
o arquivo chamado $ name no diretório atual e o próprio diretório.Ele não criará arquivos em subdiretórios, conforme solicitado pelo OP, enquanto esta versão será criada aqui.
fonte
Para criar apenas um arquivo, você pode usar
touch
comfind
:fonte