então eu sei como criar vários diretórios ao mesmo tempo, por exemplo.
mkdir -p tree/{dir1,dir2,dir3}
mas como faço para criar um diretório e colocar arquivos nele ao mesmo tempo? Em última análise, quero fazer isso em muitos ao mesmo tempo.
Responder1
Não existe um comando único para fazer isso, mas você pode criar 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 será criado com o nome de arquivo especificado, por exemplo
mkpath dir1/dir2/dir3/file.txt
Observação: Este é um exemplo de função que não foi exaustivamente testado para atender a diferentes entradas e situações. A captura de erros adequada pode ser necessária para garantir robustez.
Como herda as características de suas funções componentes, mkdir
e mkfile
, duas características importantes são transferidas para a mkpath
forma como está atualmente:
- Parece seguro especificar um caminho que inclua diretórios pré-existentes, e esses diretórios e seu conteúdo serãonãoser sobrescrito;
- Por outro lado, se um arquivo existir no local especificado, elevaiserá substituído por um arquivo em branco e não será possível recuperar o conteúdo do arquivo antigo.