простой способ создать файл, вложенный в недоступные каталоги - PullRequest
3 голосов
/ 22 августа 2009

Я знаю, что могу сделать

mdkir -p a/b/c/d

Однако снова и снова мне нужно поместить файл в новый каталог. Вот что я делаю

mkdir -p a/b/c
touch a/b/c/foo.txt

Мне было интересно, есть ли простой способ объединить эти две операции.

Ответы [ 3 ]

6 голосов
/ 22 августа 2009

В оболочке Bash создайте функцию в своем файле .bashrc.

function mktouch {
  mkdir -p $( dirname $1 )
  touch $1
}

Тогда просто позвоните mktouch a / b / c / foo.txt

1 голос
/ 22 августа 2009

В bash вы можете сделать:

 mkdir -p a/b/c && touch !#:2/foo.txt  

Но это не так кратко, как я думаю, вы хотите.

0 голосов
/ 09 марта 2019

Основываясь на ответе Стива К, если в пути есть пробелы, он не будет работать должным образом,

mktouch a/b\ b/c/d.txt
mkdir: created directory 'a'
mkdir: created directory 'a/b'
touch: cannot touch 'a/b b/c/d.txt': No such file or directory

Двойные кавычки предотвратят разбиение слов.

function mktouch {
    mkdir -p "$( dirname "$1" )"
    touch "$1"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...