2014-12-05 82 views
2

我想創建一個腳本,它將運行一個文件列表,併爲每個文件創建一個增量目錄,然後將該文件移動到新目錄中。我一直在讓文件移動。增量目錄,將文件移動到目錄 - 循環

n=1 

for file in /Users/scrawfo/Desktop/untitled\ folder/*.zip; do 
    mkdir /Users/scrawfo/Desktop/untitled\ folder/test/$((n++)) 
    sleep 5s 
    mv $file /Users/scrawfo/Desktop/untitled\ folder/test/"$((n++))" 
done 

回答

2

它看起來像你遞增$n兩次,所以當你移動的文件,目錄不存在。我想你想要:

n=1 

for file in /Users/scrawfo/Desktop/untitled\ folder/*.zip; do 
    mkdir /Users/scrawfo/Desktop/untitled\ folder/test/$n 
    sleep 5s 
    mv $file /Users/scrawfo/Desktop/untitled\ folder/test/$n 
    # Edited per Etan's comment, much less confusing this way 
    $((n++)) 
done 
+2

正確的想法錯誤的修復。 '$((n ++))'返回'n'的舊值,然後遞增它,所以這仍然有錯誤的目錄。在第一行使用'$((++ n))',在第二行使用增量,或者在兩行之前或之後使用增量。 – 2014-12-05 17:05:17

+0

仍然收到錯誤'usage:mv [-f | -i | -n] [-v]源目標 mv [-f | -i | -n] [-v]源...目錄' – 2014-12-05 17:07:06

+0

我喜歡在最後增加,因爲它更明顯的是你要做的。 – zerodiff 2014-12-05 17:10:02

相關問題