是否可以将find的结果传递给COPY命令cp

像这样:

find . -iname "*.SomeExt" | cp Destination Directory

寻求,我总是找到这种公式such as from this post:
find . -name "*.pdf" -type f -exec cp {} ./pdfsfolder \;

这引起了一些问题:
  • 为什么您不能只使用|管道?这不是为了什么吗?
  • 为什么每个人都推荐-exec
  • 我如何知道何时在管道|上使用该(exec)?
  • 最佳答案

    好问题!



    当然,您可以通过管道将xargs用于以下情况:

    find . -iname "*.SomeExt" | xargs cp Destination_Directory/
    


    -exec很好,因为它提供了对您正在执行的内容的更多控制。每当进行管道传输时,可能会遇到一些极端情况:文件名包含空格或换行符等。



    这确实取决于您,并且可能有很多情况。只要执行的操作很简单,我都会使用-exec。我不是xargs的好 friend ,我倾向于使用将find输出提供给while循环的方法,例如:
    while IFS= read -r result
    do
        # do things with "$result"
    done < <(find ...)
    

    关于linux - 是否可以将FIND的结果传递给COPY命令CP?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26234041/

    10-10 22:58