创建嵌套在不可用目录中的文件的简便方法

时间:2009-08-21 21:33:00

标签: linux command-line

我知道我能做到

mdkir -p a/b/c/d

但是我一次又一次需要将文件放在新目录中。所以这就是我的工作

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

我想知道是否有一种简单的方法可以将这两种操作结合​​起来。

3 个答案:

答案 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"
}