BASH重定向创建文件夹

时间:2012-01-26 17:21:25

标签: bash

我如何拥有以下命令

echo "something" > "$f"

其中$f类似folder/file.txt,如果不存在则创建文件夹folder

如果我不能这样做,我怎么能让脚本将目录'a'中的所有文件夹(没有内容)复制到目录'b'?

例如,如果我有

A / F1 /
一个/ F2 /
一个/ F3 /

我想要

B / F1 /
B / F2 /
B / F3 /

4 个答案:

答案 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