怎樣纔可以有以下命令BASH重定向創建文件夾
echo "something" > "$f"
其中$f
將會像folder/file.txt
創建文件夾folder
如果不存在?
如果我不能這樣做,我該如何讓腳本將目錄'a'中的所有文件夾(無內容)複製到目錄'b'?
例如,如果我有
A/F1/
A/F2/
A/F3/
我想有
B/F1/
B/F2/
b/F3/
怎樣纔可以有以下命令BASH重定向創建文件夾
echo "something" > "$f"
其中$f
將會像folder/file.txt
創建文件夾folder
如果不存在?
如果我不能這樣做,我該如何讓腳本將目錄'a'中的所有文件夾(無內容)複製到目錄'b'?
例如,如果我有
A/F1/
A/F2/
A/F3/
我想有
B/F1/
B/F2/
b/F3/
其他的答案在這裏使用的是外部命令「目錄名」。這可以在不調用外部工具的情況下完成。
mkdir -p "${f%/*}"
你也可以檢查,如果該目錄已經存在,但是這不是真的的mkdir -p要求:
mydir="${f%/*}"
[[ -d $mydir ]] || mkdir -p "$mydir"
嘗試
mkdir -p `dirname $f` && echo "something" > $f
您可以使用mkdir -p
寫入文件之前創建的文件夾:
mkdir -p "$(dirname $f)"
echo "something" | install -D /dev/stdin $f
謝謝你的提示,但正確的語法實際上是'$ { f%/ *}' – baruch
我已經更新了答案。對不起,我已經給了'basename',而不是'dirname'。 – jordanm