请教一个Linux命令:find -name . "*test*" -type f|xargs cp ../testdir2/

意图是: 从当前目录查找文件中还有test的文件,并且把他复制到上层的testdir2目录中。

应该这么写
find . -name "*test*" -type f -exec cp {} ../testdir2/ \;
表示查找目录的.要在find之后-name之前,或者干脆省略
xargs把管道输出的文件名添加到命令的结尾。而你需要做的复制操作,源文件名应该在cp和目标目录之间。可以用find自带的-exec操作,用{}代替查找到的文件名,以\;作为命令结尾。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-04
可以用for来写
#! /bin/bash

FILENAME=`find ./ -name 'test'`

for i in $FILENAME
do
if [ -f $i ]
then
cp $i ../testdir2/
fi
done
相似回答