Назад | Перейти на главную страницу

Перемещение / переименование файлов, содержащих% 2f в имени, в структуру каталогов

У меня есть несколько файлов, которые были экспортированы (из моего трассировка wiki), названные как ParentPage%2FSubPage но на самом деле они должны быть похожи на ParentPage/SubPage. У любого есть быстрый и грязный способ переименовать и упорядочить их, чтобы ParentPage будет каталог, а затем SubPage внутри будет файл?


Немного изменено из ответа @Christopher Karel, которое я использовал:

for FILE in $(ls | grep "%2F")
do
  CONVERTED=$(echo $FILE | sed -e 's/%2F/\//g')
  DIRNAME=$(dirname $CONVERTED)
  if [ -f $DIRNAME ]; then  mv $DIRNAME $DIRNAME.page; fi
  mkdir -p $DIRNAME
  if [ -f $DIRNAME.page ]; then  mv $DIRNAME.page $DIRNAME/$(basename $DIRNAME); fi
  mv $FILE $CONVERTED
done

и тестовые данные, которые я использовал (в пустом каталоге) перед запуском вышеуказанного:

touch Test; touch Test%2FA%2F1; touch Test%2FA%2F2; touch Test%2FB

Хорошо, вот метод bash для этого. Не надежный, но быстрый и грязный.

for FILE in $(ls | grep "%2F")
do
CONVERTED=$(echo $FILE | sed -e 's/%2F/\//')
mkdir -p $(dirname $CONVERTED)
mv $FILE $CONVERTED
done