cp:无效选项-'o'


8

我正在GitHub上安装脚本,步骤之一是:

cp sources/openssl/1.0.1p/Android.mk -o sources/openssl/$OPENSSL_VERSION/Android.mk

但是我的终端抛出了一个错误 cp: invalid option -- 'o'

我检查man cp了我的Ubuntu,没有选择-o。这是MAC OS吗?代表什么cp -o


我不确定-o的来源,但我认为它不是必需的,并且该副本只是从一个源目标复制到源目录
Raman Sailopal

Answers:


5

您可以安全地删除-o选项。顺便说一句,是否设置了$ OPENSSL_VERSION?


谢谢。是的,它已设置(OPENSSL_VERSION = 1.0.2h)
Adhy Satya

然后删除-o,我认为github上的人并不想把它放在那里,真的
Alex Austin

8

这是一个错字。我所知道的任何Unix上都没有cp-o选项的实现。我的猜测是可以安全地删除此选项。

可能是他们的意思cp -p(与GNU使用时保护模式,时间戳和所有权cp等),或cp -i交互式的文件已经存在的情况下提示。

他们显然使用GNU cp,因为它们将操作数与选项混合在一起。普通工具通常在第一个非选项时停止解析命令行,但是GNU工具将尝试变得更聪明。


无论如何,cp file -o dir是指将file-o文件复制到dir。只有GNU(GNU或者类似像BusyBox的)cp将采取-o作为一个选项(只有当$POSIXLY_CORRECT不在环境)
斯特凡Chazelas

2
也许正是有了共同的困惑curl... -o。但这都是猜测。只有雷皮能真正解释。
JdeBP

使用GNU cpcp --o将是的缩写cp --one-file-system。我同意JdeBP的说法,这只是一个错字,尤其是考虑到下一节与做了类似的事情curl -o。这并不表示他们正在使用GNU cp或任何其他实现。
斯特凡Chazelas

1
@ user000001,是的,但--o(或--on,或--one......)也将工作(注意双破折号)
斯特凡Chazelas

3
@ user000001如果您曾经编写脚本(或文档),请不要缩写选项。这使得它变得不必要地难以理解。
库沙兰丹
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.