我知道我能做到
mdkir -p a/b/c/d
但是我一次又一次需要将文件放在新目录中。所以这就是我的工作
mkdir -p a/b/c
touch a/b/c/foo.txt
我想知道是否有一种简单的方法可以将这两种操作结合起来。
答案 0 :(得分:6)
在Bash shell中,在.bashrc文件中创建一个函数。
function mktouch {
mkdir -p $( dirname $1 )
touch $1
}
然后只需调用mktouch a / b / c / foo.txt
答案 1 :(得分:1)
在bash中你可以做到:
mkdir -p a/b/c && touch !#:2/foo.txt
但这并不像我想的那样简洁。
答案 2 :(得分:0)
以史蒂夫·科恩(Steve K)的答案为基础,如果路径中有空格,它将无法按预期工作,
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"
}