Чтобы переместить некоторые данные из программы в Windows в ту же программу на Mac, программа имеет встроенный инструмент резервного копирования. К сожалению, похоже, что они никогда не тестировали кросс-платформенную совместимость, так как создаваемый им ZIP-файл имеет следующие имена файлов:
Data\Shared\filename.extension
Data\Users\Ashley\filename.extension
etc etc
Итак, мне нужно преобразовать эти расширения с обратной косой чертой в их эквивалент папки. Различий не так много, поэтому я с радостью сделаю mv
команду на них, а затем удалить начало «папки» - но это то место, где я застрял.
Предложения по удалению (например) Data\Shared
или сделайте это быстро, двигаясь по имени файла. Спасибо
Что-то вроде этого должно заставить вас измениться 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.