在dir中找到文件中的字符串然后复制它们

时间:2015-03-23 11:06:12

标签: linux centos

我正在运行centos并且发现了类似的问题,但是没有人需要完全按照我的方式去做。

我想在其中隐藏的任何文件中找到一个字符串:

  

/home/username/mail/.person1\@someemaildir_com /

当它找到它们或找到它们之后,将它找到的任何文件复制到另一个文件夹:

  

/home/username/mail/.person2 \ @ someemaildir_com / .Mail \ Folder /

以下是我在没有工作的情况下尝试的内容:

grep -lir 'stringtofind' /home/username/mail/.person1\@someemaildir_com/* | xargs cp -t /home/username/mail/.person2\@someemaildir_com/.Mail\ Folder/

2 个答案:

答案 0 :(得分:0)

我建议关注(假设您的grep "stringtofind"做了它应该做的事情):

grep -lir "stringtofind" /home/username/mail/.person1\@someemaildir_com/* | while read f; do
    cp "$f" /home/username/mail/.person2\@someemaildir_com/.Mail\ Folder/
done

"大约$ f可能很重要,因为文件名或文件夹名中的空格

答案 1 :(得分:0)

对于其他寻找此答案的人来说还可以。我改变了战术,并使下面的工作得很好。

find /home/username/mail/.person1\@someemaildir_com/  -name '*' -exec grep -l "string to find" {} \; -exec cp {} /home/username/mail/.person2\@someemaildir_com/.Mail\ Folder/ \;