我如何拥有以下命令
echo "something" > "$f"
其中$f
类似folder/file.txt
,如果不存在则创建文件夹folder
?
如果我不能这样做,我怎么能让脚本将目录'a'中的所有文件夹(没有内容)复制到目录'b'?
例如,如果我有
A / F1 /
一个/ F2 /
一个/ F3 /
我想要
B / F1 /
B / F2 /
B / F3 /
答案 0 :(得分:18)
这里的其他答案是使用外部命令“dirname”。这可以在不调用外部实用程序的情况下完成。
mkdir -p "${f%/*}"
您还可以检查目录是否已存在,但mkdir -p并非真正需要:
mydir="${f%/*}"
[[ -d $mydir ]] || mkdir -p "$mydir"
答案 1 :(得分:6)
试
mkdir -p `dirname $f` && echo "something" > $f
答案 2 :(得分:2)
在写入文件之前,您可以使用mkdir -p
创建文件夹:
mkdir -p "$(dirname $f)"
答案 3 :(得分:1)
echo "something" | install -D /dev/stdin $f