我需要编写一个shell脚本,从环境中读取变量。如果它指向的文件不存在,我想创建它。如何在shell脚本中创建文件
此文件路径可能包含一些中间不存在的目录,因此这些也需要创建。因此,mkdir -p既不在这里也不在这里工作。
解决方法是什么?
谢谢!
我需要编写一个shell脚本,从环境中读取变量。如果它指向的文件不存在,我想创建它。如何在shell脚本中创建文件
此文件路径可能包含一些中间不存在的目录,因此这些也需要创建。因此,mkdir -p既不在这里也不在这里工作。
解决方法是什么?
谢谢!
mkdir -p "`dirname $foo`"
touch "$foo"
dirname
适用于任意路径;它不检查路径是否在使用中(文件是否指向存在)。
为什么不把两者结合起来? mkdir -p /directories/.... && touch /directories/file
'&'操作符不会做你想要的。你可能是指'&&' – wormsparty
美丽,+1。 “所以既没有mkdir -p在这里工作也没有简单的触摸在这里工作” - 我们将会看到这个,我的漂亮:-) – paxdiablo
谢谢@larsmans ......迫不及待地接受这个答案! :-) – xyz
这将在错误的(当前)目录中创建文件。你不需要'basename'。 – knittl