2011-10-19 119 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

相關問題