循环移动文件不起作用

时间:2012-10-01 17:07:25

标签: bash

我有一个早上没有计划的事情。我需要在时间上以1,000块的方式将文件移动到目标目录

我想循环浏览我的文件

for i in `find . -name '*XML'`
   for((b=0; b<1000; b++))
   do
   mv $i targetdirect/
   done
done

但是我在“意外令牌`done:”附近出现“-bash:syntax error”错误。

我缺少什么?

2 个答案:

答案 0 :(得分:3)

第二个for循环是语法错误。您还应该引用"$i"

一次移动1000个文件是什么意思?这样的事可能呢?

find . -name '*.XML' -print0 | xargs -r0 -n 1000 mv -t targetdirect

-print0和相应的xargs -0是GNU扩展,用于处理任意文件名。这是有效的,因为在Unix上文件名中的空字符是无效字符;因此,可以安全地用作文件名之间的分隔符。对于经常命名的文件(没有引号,文件名中没有换行符等),这可能看起来很偏执,但它是有充分记录的做法和FAQ

答案 1 :(得分:0)

您的第一个for循环没有相应的do(您有两个done,但只有一个do。)