BASH重定向创建文件夹
如何使用以下命令BASH重定向创建文件夹,bash,Bash,如何使用以下命令 echo "something" > "$f" 其中$f类似于文件夹/file.txt如果文件夹不存在,是否创建文件夹文件夹 如果我不能这样做,我如何让脚本将目录“a”中的所有文件夹(没有内容)复制到目录“b” e、 g如果我有 a/f1/ a/f2/ a/f3/ 我想要 b/f1/ b/f2/ b/f3/试试看 mkdir -p `dirname $f` && echo "something" > $f 在写入文件之前,可以使用mkdir-p创
echo "something" > "$f"
其中$f
类似于文件夹/file.txt
如果文件夹不存在,是否创建文件夹文件夹
如果我不能这样做,我如何让脚本将目录“a”中的所有文件夹(没有内容)复制到目录“b”
e、 g如果我有
a/f1/a/f2/
a/f3/ 我想要 b/f1/
b/f2/
b/f3/试试看
mkdir -p `dirname $f` && echo "something" > $f
在写入文件之前,可以使用
mkdir-p
创建文件夹:
mkdir -p "$(dirname $f)"
这里的其他答案是使用外部命令
dirname
。这可以在不调用外部实用程序的情况下完成
mkdir -p "${f%/*}"
您还可以检查目录是否已经存在,但使用mkdir-p
时实际上并不需要这样做:
mydir="${f%/*}"
[[ -d $mydir ]] || mkdir -p "$mydir"
谢谢你的提示,但是正确的语法实际上是
${f%/*}
我已经更新了答案。很抱歉,我给您提供了basename
的替代方案,而不是dirname
。-d$mydir
的作用是什么?如果下一个参数是目录,那么${f%/*}
中的所有额外符号是什么?@AndrewKirna将返回true。请参阅帮助测试的输出。
echo "something" | install -D /dev/stdin $f