touch コマンドでは存在しないディレクトリを指定することはできない

結論

標題通りです。

例えばカレントディレクトリに tmp/ というディレクトリがない場合に tmp/foobar.txt を作ろうとすると以下のようにエラーになります。

$ touch tmp/foobar.txt
touch: 'tmp/foobar.txt' に touch できません: そのようなファイルやディレクトリはありません

mkdir でいう -p のようなオプションはありません。

解決方法

エラーを起こさないようにするならば、以下のコマンドでいいでしょう。mkdir-p オプションはディレクトリが既に存在する場合には何もしない(エラーも返さない)ので、以下のコマンドは冪等です。

$ mkdir -p tmp && touch tmp/foobar.txt
Powered by はてなブログ