在某些版本的linux下,通过find查找当前目录下所有后缀名jpg的文件,命令为

find ./ -iname *.jpg

会出现“find: 路径必须在表达式之前”的错误提示。解决的方法有两种

  1. 使用转义符把*转义,即  \*.jpg
  2. 用引号引起来 ,即 “*.jpg”

注意:如果需要把find 的结果提交给while,例如:

`echo find ./ -iname "\*.jpg"` | while read f
do
   #do something
done

则既需要转义符,也需要引号

#!/usr/bin/env sh
DATA=/home/xxx/data/message/train_test/data

echo "Create train.txt..."
rm -rf $DATA/train.txt
find $DATA -name "*0.jpg" | sed "s/$/ 1/">>$DATA/train.txt
echo "Done.."