У меня есть несколько файлов, которые были экспортированы (из моего трассировка 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