gpt4 book ai didi

Bash 查找过滤器并复制 - 空格问题

转载 作者:行者123 更新时间:2023-12-04 04:42:38 26 4
gpt4 key购买 nike

因此,经过大量搜索并尝试根据我的需求来解释其他人的问题和答案后,我决定问问自己。

我正在尝试采用一个充满图像的目录结构,并将所有图像(无论扩展名如何)放在一个文件夹中。除此之外,我希望能够在此过程中删除与某些文件名匹配的图像。我有一个 find 命令可以为我输出所有文件路径

find -type f -exec file -i -- {} + | grep -i image | sed 's/\:.*//'

但是如果我尝试使用它来复制文件,文件名中的空格就会出现问题。
cp `find -type f -exec file -i -- {} + | grep -i image | sed 's/\:.*//'` out/

我做错了什么,有没有更好的方法来做到这一点?

最佳答案

将 find 命令的结果通过管道传输到

xargs -l --replace cp "{}" out/

在 Ubuntu 10.04 上如何为我工作的示例:
atomic@atomic-desktop:~/temp$ ls
img.png img space.png
atomic@atomic-desktop:~/temp$ mkdir out
atomic@atomic-desktop:~/temp$ find -type f -exec file -i \{\} \; | grep -i image | sed 's/\:.*//' | xargs -l --replace cp -v "{}" out/
`./img.png' -> `out/img.png'
`./img space.png' -> `out/img space.png'
atomic@atomic-desktop:~/temp$ ls out
img.png img space.png
atomic@atomic-desktop:~/temp$

关于Bash 查找过滤器并复制 - 空格问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18669990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com