cp: ungültige Option - 'o'

8

Ich folge einem Installationsskript auf GitHub und einer der Schritte ist:

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

Aber mein Terminal hat einen Fehler gemacht cp: invalid option -- 'o'

Ich habe man cpmein Ubuntu überprüft und es gibt keine Option -o. Ist das eine MAC OS Sache? Wofür steht cp -o?

Adhy Satya
quelle
Ich bin nicht sicher, woher das -o kam, aber ich gehe davon aus, dass es nicht benötigt wird und die Kopie einfach von einem
Quellziel

Antworten:

5

Sie können die Option -o sicher entfernen. Übrigens, ist $ OPENSSL_VERSION gesetzt?

Alex Austin
quelle
Vielen Dank. Ja, es ist gesetzt (OPENSSL_VERSION = 1.0.2h)
Adhy Satya
dann entferne einfach -o, ich denke, die Leute bei Github wollten es nicht wirklich dort hinstellen
Alex Austin
8

Das ist ein Tippfehler. Es gibt keine Implementierung, für cpdie unter einem -omir bekannten Unix eine Option verfügbar ist. Ich vermute, dass diese Option sicher entfernt werden kann.

Es kann sein, dass sie gemeint sind cp -p(Modus, Zeitstempel und Besitz beibehalten, wenn sie mit GNU cpund anderen verwendet werden) oder cp -ifür interaktive Eingabeaufforderungen, falls die Datei bereits vorhanden ist.

Sie verwenden offensichtlich GNU cp, da sie Operanden mit Optionen vermischen. Gewöhnliche Tools beenden normalerweise das Parsen der Befehlszeile bei der ersten Nichtoption, aber GNU-Tools versuchen, intelligent zu sein.

Kusalananda
quelle
Wie auch immer, cp file -o dirsoll die fileund -oDateien kopieren dir. Nur GNU (oder GNU-ähnliche Busybox) cpwürde dies -oals Option nehmen (und nur, wenn $POSIXLY_CORRECTes nicht in der Umgebung ist)
Stéphane Chazelas
2
Möglicherweise war es eine Verwechslung mit dem Gemeinsamen curl-o. Aber das ist alles eine Vermutung. Nur Lei Pi kann es wirklich erklären.
JdeBP
Mit GNU cp, cp --owäre eine Abkürzung für sein cp --one-file-system. Ich stimme JdeBP zu, dass es nur ein Tippfehler ist, insbesondere wenn man bedenkt, dass der nächste Abschnitt etwas Ähnliches tut curl -o. Es ist kein Hinweis darauf, dass sie GNU cpoder eine andere Implementierung verwenden.
Stéphane Chazelas
1
@ user000001, ja, aber --o(oder --on, oder --one...) würde auch funktionieren (beachten Sie den doppelten Strich)
Stéphane Chazelas
3
@ user000001 Wenn Sie jemals ein Skript (oder eine Dokumentation) schreiben, kürzen Sie die Optionen jedoch nicht ab. Es macht es unnötig schwer zu verstehen.
Kusalananda