gpt4 book ai didi

linux - 如何在shell脚本中查看和使用cp命令的状态?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:52 24 4
gpt4 key购买 nike

这是我的 shell 脚本中的一条语句。 ${origin} 和 ${archive} 是 2 个目录。

该命令读取 ${origin} 文件夹中的所有 jpg、png 和 jpeg 文件,并将它们复制到 ${archive} 文件夹中。

find ${origin} -regex '.*\(jpg\|png\|jpeg\)' -exec cp -n {} ${archive} \;

我想要的是,如果cp成功复制了一个文件,(也说明该文件不存在于${archive}文件夹中),它会执行一些命令。

问题:

  1. 在shell脚本中如何知道cp是否成功复制文件?

  2. 我可以在哪里放置 if 语句?

最佳答案

find -exec 的文档说:

Execute command; true if 0 status is returned.

在此上下文中的“true”表示 -exec 命令的结果,它控制是否继续处理匹配的文件。所以你可以这样做:

find ... -exec cp -n {} ${archive} \; -exec OTHER STUFF \;

即首先尝试复制文件。如果 cp 成功,它将返回 0find 会将其视为 true,表示“继续处理此文件”。

关于linux - 如何在shell脚本中查看和使用cp命令的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44643389/

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