gpt4 book ai didi

linux - Bash 脚本 - 使用 find -exec cp 的 For 循环产生错误 : cp: omitting directory

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:46:13 25 4
gpt4 key购买 nike

背景

我有两个图像文件夹...文件夹一是包含数千张彩色图像的主文件夹。文件夹二是一个经过过滤的文件夹,其中包含我一直在整个文件夹一中寻找的内容,但文件夹二中的图像是黑白的。

特别说明 – 文件夹二中的图像文件名与文件夹一中的相同+后面的一些其他信息(但在 .jpeg 扩展名之前)。

我的目标

在文件夹一中搜索文件夹二中文件名的开头部分(这样我就可以得到我过滤过的图像的彩色副本),然后将这些图像复制到另一个名为 PASS FOLDER 的文件夹中。

我的代码

注意 – 文件夹一、二、通过文件夹 = F1、F2、通过(分别)

for doc in F2/*
do
name=`basename $doc`;
name=${name%-*};
find /home/user/F1/ -name "$name*" -exec cp {} /home/user/PASSED/ \;;
done

我的问题

一直报错

cp: omitting directory '/home/user/F1/'

求助!我认为这应该很简单,只是一直有问题。我还单独测试了 for 循环的每个单独部分,它们都有效。我认为 for 循环搞砸了,但我不明白为什么。

最佳答案

问题是 find 正在处理要复制的 cp 目录,而您只想复制文件。因此,替换:

find /home/user/F1/ -name "$name*" -exec cp {} /home/user/PASSED/ \;

与:

find /home/user/F1/ -type f -name "$name*" -exec cp {} /home/user/PASSED/ \;

Thw 谓词 -type f 告诉 find 只匹配常规文件,而不匹配目录。

关于linux - Bash 脚本 - 使用 find -exec cp 的 For 循环产生错误 : cp: omitting directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36878501/

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