我有一大堆被命名为ParentPage%2FSubPage (从我的trac wiki)导出的文件,但实际上应该像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
和我使用的testing数据(在一个空的目录中),在运行上面的之前:
touch Test; touch Test%2FA%2F1; touch Test%2FA%2F2; touch Test%2FB
好的,这是一个bash方法来做到这一点。 不是万无一失的,但又快又脏。
对于$(ls | grep“%2F”)中的FILE 做 CONVERTED = $(echo $ FILE | sed -e's /%2F / \ //') mkdir -p $(dirname $ CONVERTED) mv $ FILE $ CONVERTED DONE