Cria diretórios pais ao criar um novo arquivo

5

Estou ciente do fato de que mkdir -p /path/to/new/directory criará um novo diretório, juntamente com o diretório pai (se necessário).

Se eu tiver que criar um novo arquivo, junto com seus diretórios pai (em que alguns ou todos os diretórios pai não estão presentes), eu poderia usar mkdir -p /path/to/directory && touch /path/to/directory/NEWFILE . Mas, existe algum outro comando para conseguir isso?

    
por Mandar Shinde 18.11.2014 / 04:35

2 respostas

5

AFAIK, não há nada padrão como esse, mas você pode fazer isso sozinho:

ptouch() {
  for p do
    _dir="$(dirname -- "$p")"
    mkdir -p -- "$_dir" &&
      touch -- "$p"
  done
}

Então você pode fazer:

ptouch /path/to/directory/file1 /path/to/directory/fil2 ...
    
por 18.11.2014 / 04:49
3

Alguns sistemas possuem um comando install que pode ser solicitado a criar componentes de caminho ausentes.

Com a implementação GNU de install ,

install -DTm644 /dev/null foo/bar/baz

Criaria um arquivo baz regular vazio com a permissão 0644 e criaria os diretórios foo e foo/bar , se ausentes (com permissão 0755, independentemente da umask).

    
por 28.11.2016 / 14:36