2011-10-19 169 views
4

我需要编写一个shell脚本,从环境中读取变量。如果它指向的文件不存在,我想创建它。如何在shell脚本中创建文件

此文件路径可能包含一些中间不存在的目录,因此这些也需要创建。因此,mkdir -p既不在这里也不在这里工作。

解决方法是什么?

谢谢!

回答

8
mkdir -p "`dirname $foo`" 
touch "$foo" 

dirname适用于任意路径;它不检查路径是否在使用中(文件是否指向存在)。

+1

美丽,+1。 “所以既没有mkdir -p在这里工作也没有简单的触摸在这里工作” - 我们将会看到这个,我的漂亮:-) – paxdiablo

+0

谢谢@larsmans ......迫不及待地接受这个答案! :-) – xyz

+2

这将在错误的(当前)目录中创建文件。你不需要'basename'。 – knittl

0

为什么不把两者结合起来? mkdir -p /directories/.... && touch /directories/file

+6

'&'操作符不会做你想要的。你可能是指'&&' – wormsparty

相关问题