我正在使用 Mac OS X。我正在尝试使用 cp 命令为这样的构建脚本复制一些文件。
cp ./src/*/*.h ./aaa
Run Code Online (Sandbox Code Playgroud)
但是如果 ./src 目录中没有 .h 文件,这个命令会触发一个错误。如何使命令不触发错误?(无声失败)错误使构建结果失败,但我只想在只有一些头文件时复制。
Den*_*son 105
如果您正在谈论错误消息,您可以通过将其发送到位桶来抑制它:
cp ./src/*/*.h ./aaa 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
如果要取消退出代码和错误消息:
cp ./src/*/*.h ./aaa 2>/dev/null || :
Run Code Online (Sandbox Code Playgroud)
Bra*_*man 16
你正在寻找类似的东西
if [ -e file ]
then cp file /somewhere
fi
Run Code Online (Sandbox Code Playgroud)
(不幸的是,该-f选项不是您正在寻找的机器人。)
如果你想匹配一个 glob,那是行不通的;使用find代替,例如:
find ./src -name \*.h -exec cp {} ./destination \;
Run Code Online (Sandbox Code Playgroud)
mre*_*mre 11
老问题,但可能仍然适用于其他人。
如果您不需要使用 cp,您可以尝试使用 rsync。
要将所有文件从源复制到目标目录,请运行:
rsync -avzh --ignore-errors /path/to/source /path/to/destination
Run Code Online (Sandbox Code Playgroud)
Rsync 随大多数类 Unix 系统一起提供,例如 Linux、Mac OS X 或 FreeBSD。
小智 10
将结果设置为 true 可确保命令始终成功。我在 Linux 上试过这个,但在任何 Mac OS 上都没有试过:
cp ./src/*/*.h ./aaa | true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
129775 次 |
| 最近记录: |