我该如何运行以下命令?
echo "something" > "$f"
如果$f
是类似于folder/file.txt
的形式,那么如果文件夹不存在,创建文件夹folder
?
如果我不能这样做,我该如何编写一个脚本来将目录'a'中所有文件夹(不包括内容)复制到目录'b'中?
例如,如果我有:
a/f1/
a/f2/
a/f3/
我想要:
b/f1/
b/f2/
b/f3/
我该如何运行以下命令?
echo "something" > "$f"
如果$f
是类似于folder/file.txt
的形式,那么如果文件夹不存在,创建文件夹folder
?
如果我不能这样做,我该如何编写一个脚本来将目录'a'中所有文件夹(不包括内容)复制到目录'b'中?
例如,如果我有:
a/f1/
a/f2/
a/f3/
我想要:
b/f1/
b/f2/
b/f3/
这里的其他答案都使用了外部命令dirname
。但是不需要调用外部工具也可以完成。
mkdir -p "${f%/*}"
您也可以检查目录是否已经存在,但使用mkdir -p
其实并不需要:
mydir="${f%/*}"
[[ -d $mydir ]] || mkdir -p "$mydir"
echo "something" | install -D /dev/stdin $f
mkdir -p `dirname $f` && echo "something" > $f
mkdir -p
在写入文件之前创建文件夹:mkdir -p "$(dirname $f)"
${f%/*}
。 - Baruchbasename
的替代方案,而不是dirname
。 - jordanm-d $mydir
是什么作用? - Andrew Kirna${f%/*}
中的所有额外符号是什么意思? - Andrew Kirna