Wie überschreibe ich mithilfe eines Shell-Skripts oder Terminals Dateien, die möglicherweise vorhanden sind oder nicht? Ich habe auf der Manpage nach cp gesucht. Dort stand, dass das Argument -f verwendet wird, um das Überschreiben zu erzwingen. Aber es macht nichts.
$ cp -f /path/to/source/file.txt /path/to/target
Oder gibt es eine andere Option zum Überschreiben von Dateien mit den in OS X üblichen Befehlszeilentools?
terminal
command-line
script
rogerFernand
quelle
quelle
sudo
am Anfang des Befehls verwenden. Aber Vorsicht walten lassen!mv
sie oderrm
sie.sudo
kann ich Dateien verwendenmv
oderrm
verschieben oder entfernen, bevor ich sie verwendecp
. Die Verwendungsudo cp
macht keinen Unterschied.Antworten:
Ich bin ratlos darüber, warum sich cp so verhält, wenn kein Alias beteiligt ist. Für genau diese Situation gibt es jedoch ein schnell verschmutztes und gefährliches Dienstprogramm :
yes
. Sie können es verwenden, um einen fortlaufenden Strom von Bestätigungen in jeden Befehl zu leiten, der Sie zur Bestätigung auffordert (Sie können damit jeden Text senden, aber die Standardeinstellung ist "y").yes | cp foo bar
führt den Befehl cp aus und umgeht alle Bestätigungsaufforderungen.quelle
Dies kann durch einen Befehlsalias verursacht werden.
Um
cp
direkt anzurufen, können Sie verwenden/bin/cp src dest
quelle
alias cp
) haben. Sie können den Alias in ihrem Profil ändern oder / bin / cp wie vorgeschlagen verwenden.cp
wie sie von Apple bereitgestellt wurde.roger$ alias cp -bash: alias: cp: not found
type cp
. Und das tat es tatsächlich.Zuerst entfernen Sie (
rm
) das Ziel, dann&&
kopieren Sie bei Erfolg ( ). Denken Sie beim Entfernen eines Ordners daran,-r
zurm
(rm -r
) hinzuzufügen .quelle
Ich hatte auch einen Alias, der mit -f durcheinander gebracht wurde, cp direkt von / bin aufrief und alles ist in Ordnung. Ein Alias, der versehentliches Überschreiben / Entfernen standardmäßig verhindert, ist ziemlich gut, also entfernen Sie ihn am besten nicht.
Wie bereits erwähnt, überschreitet das Flag -i -f -f, wodurch der folgende Befehl nicht wie beabsichtigt ausgeführt werden kann.
quelle