我有一个早上没有计划的事情。我需要在时间上以1,000块的方式将文件移动到目标目录
我想循环浏览我的文件
for i in `find . -name '*XML'`
for((b=0; b<1000; b++))
do
mv $i targetdirect/
done
done
但是我在“意外令牌`done:”附近出现“-bash:syntax error”错误。
我缺少什么?
答案 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
。)