我有這些早晨之一,沒有任何計劃。我需要將文件通過的1000塊在時間移動到目標目錄循環移動不起作用的文件
我想環路經過我的文件,像這樣
for i in `find . -name '*XML'`
for((b=0; b<1000; b++))
do
mv $i targetdirect/
done
done
但我得到一個「-bash:靠近意外的標記語法錯誤`DONE :「錯誤。
我在想什麼?
我有這些早晨之一,沒有任何計劃。我需要將文件通過的1000塊在時間移動到目標目錄循環移動不起作用的文件
我想環路經過我的文件,像這樣
for i in `find . -name '*XML'`
for((b=0; b<1000; b++))
do
mv $i targetdirect/
done
done
但我得到一個「-bash:靠近意外的標記語法錯誤`DONE :「錯誤。
我在想什麼?
你的第一個for
循環有沒有相應的do
(你有兩個done
,但只有一個do
。)
第二for
循環是一個語法錯誤。你也應該雙引號"$i"
。
你一次移動1000個文件是什麼意思?也許這樣的事情?
find . -name '*.XML' -print0 | xargs -r0 -n 1000 mv -t targetdirect
的-print0
和相應xargs -0
是GNU擴展處理任意文件名。這是有效的,因爲在Unix上文件名中的空字符是無效字符;因此,使用文件名之間的分隔符是安全的。對於定期命名的文件(文件名中沒有引號,沒有換行符等),這看起來可能是偏執狂,但它是記錄良好的練習和FAQ。
此循環也會(嘗試)將每個文件移動到目標目錄1000次。它不會將每個調用1000個不同的文件移動到'mv'。 – chepner