我有一堆导出的文件(从我的跟踪维基百科中的名称类似于,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
答案1
好的,这里有一个 Bash 方法可以做到这一点。虽然不是万无一失的,但快速而简单。
对于 $(ls | grep "%2F") 中的文件 做 已转换 = $(echo $FILE | sed -e 's/%2F/\//') mkdir -p $(目录名 $CONVERTED) mv $文件$CONVERTED 完毕