Files
將名稱中帶有 %2f 的文件移動/重命名到目錄結構中
我有一堆文件(從我的trac wiki 導出)被命名為 like
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 方法。不是萬無一失,但又快又髒。
對於 $(ls | grep "%2F") 中的文件 做 CONVERTED=$(echo $FILE | sed -e 's/%2F/\//') mkdir -p $(目錄名 $CONVERTED) mv $FILE $CONVERTED 完畢