Como faço para criar um arquivo dentro de um diretório ao mesmo tempo?

Como faço para criar um arquivo dentro de um diretório ao mesmo tempo?

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, mkdire mkfile, duas características importantes são transferidas para a mkpathforma 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.

informação relacionada