从正斜杠创建目录结构

Make directory structure from forward slashes

我将 html 文档从 windows 机器拉到我的 linux 盒子上,问题是两者之间的目录结构没有维护。这是 linux

中的样子
MyReport\partition_and_timing.files\img0.jpg
MyReport\partition_and_timing.html
MyReport\protocols_cards.html
MyReport\report_title.files\img0.jpg
MyReport\report_title.html
MyReport\scripts.html

我正在考虑使用 bash 脚本将“\”更改为“/”,本质上是创建一个文件夹。我猜他们是这样做的标准方法,但无法弄清楚。

这就是我正在使用的东西

for file in *; do mv $file echo $file | sed 's/\/\//g' ; done

尝试mv $file ${file//\/\/}。它将 ${file}.

中的每个反斜杠替换为正斜杠

你必须捕获

 echo $file | sed 's/\/\//g'

因为现在您要移动一个文件,一个名为 'echo' 的不存在的文件,并将(错误的)结果通过管道传递给无法处理它的 sed。

file 拥有您要修改的文件列表:

for f in $file; do
    cp "$f" "$f".backup
    sed -i 's/\/\//g' $f
done

这是一个for循环,先创建一个备份文件,然后使用sed进行就地修改。

-i of sed 意味着你想做就地修改,所以修改将直接应用于文件。