要将一些数据从 Windows 上的程序移动到 Mac 上的同一程序,该程序有一个内置的备份工具。不幸的是,他们似乎从未测试过跨平台兼容性,因为它生成的 ZIP 文件的文件名如下:
Data\Shared\filename.extension
Data\Users\Ashley\filename.extension
etc etc
因此,我需要将这些反斜杠扩展名转换为它们的文件夹等效项。它们之间没有太多区别,所以我很乐意mv
对它们执行命令,然后删除开头的“文件夹” - 但这就是我遇到的问题。
关于如何删除(例如)Data\Shared
或通过根据文件名移动来快速执行的建议会很棒。谢谢
答案1
类似这样的事情应该可以让你改变BASE
成你想要的任何基本路径。
#!/bin/bash
BASE="/tmp"
for file in *
do
nf=$(echo "$file" | sed 's|\\|/|g')
filename=$(basename "$nf")
path=$(dirname "$nf")
mkdir -p "$BASE/$path"
cp "$file" "$BASE/$path/$filename"
done
我在 Linux 系统上完成了这个操作,但我希望它能在 OSX 上按预期运行。