Files

將名稱中帶有 %2f 的文件移動/重命名到目錄結構中

  • May 20, 2011

我有一堆文件(從我的trac wiki 導出)被命名為 likeParentPage%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 方法。不是萬無一失,但又快又髒。

對於 $(ls | grep "%2F") 中的文件
做
CONVERTED=$(echo $FILE | sed -e 's/%2F/\//')
mkdir -p $(目錄名 $CONVERTED)
mv $FILE $CONVERTED
完畢

引用自:https://serverfault.com/questions/271528