Não existe um único comando para fazer isso, mas você pode fazer o seu próprio:
mkpath(){ mkdir -p ${1%/*} && mkfile 0 $1; }
que pode ser chamado com um único argumento especificando o caminho de um arquivo a ser criado. Quaisquer diretórios que precisem ser criados ao longo do caminho serão criados, momento em que um arquivo vazio é criado com o nome do arquivo especificado, por exemplo.
mkpath dir1/dir2/dir3/file.txt
Nota: Esta é uma função de exemplo que não foi totalmente testada para atender a diferentes entradas e situações. Uma captura de erro adequada pode ser necessária para garantir a robustez.
Como ele herda os recursos de suas funções componentes, mkdir
e mkfile
, duas características importantes são transferidas para mkpath
da forma atual:
- Parece seguro especificar um caminho que inclua diretórios pré-existentes, e esses diretórios e seus conteúdos não serão sobrescritos;
- Por outro lado, se um arquivo existir no local especificado, ele será substituído por um arquivo em branco e não será possível recuperar o conteúdo antigo do arquivo.