Создать файл в отсутствующей директории

Допустим, есть некоторая директория root, и есть три варианта:

1) она полностью пустая

2) в ней есть дочерняя пустая директория dir

3) в dir есть файл file.txt

Каким образом из терминала можно (пере-)записать некоторый текст в file.txt в любом из трёх случаев?

(можно переформулировать, нужно что-то типа echo "hello, i'm text" > ./dir/file.txt, но так, чтобы все отсутствующие промежуточные директории создавались вместе с файлом)


Ответы (1 шт):

Автор решения: eri

Можно создать функцию которая будет создавать структуру каталогов

function newfile() {
  mkdir -p $(dirname $1)
  echo $1
}

echo "hello, i'm text" > $(newfile ./dir/file.txt)
→ Ссылка