Bestehende Dateien ohne Bestätigung kopieren?

16

Ich muss eine große Anzahl von Dateien kopieren und überschreiben. Ich habe den folgenden Befehl verwendet:

# cp -Rf * ../

Aber wann immer eine Datei mit dem gleichen Namen im Zielordner existiert, erhalte ich diese Frage:

cp: overwrite `../ibdata1'? 

Das Problem ist, dass ich ungefähr 200 Dateien habe, die überschrieben werden, und ich denke nicht, dass Y then Enter200- maliges Drücken der Taste der richtige Weg ist, dies zu tun.

Also, was ist der richtige Weg dazu?

Itai Ganot
quelle

Antworten:

36

Sie können dies tun yes | cp -rf myxx, oder wenn Sie es als root tun - Ihr .bashrc oder .profile hat einen Alias ​​von cp zu cp -i, die meisten modernen Systeme tun dies für root-Profile.

Sie können einen Alias ​​vorübergehend umgehen und die nicht mit Alias ​​versehene Version eines Befehls verwenden, indem Sie ihm das Präfix \ voranstellen, z. B. \ cp whatever

TBI Infotech
quelle
4
+1 für den Hinweis, wie ein Alias ​​umgangen werden kann. Versuchung -1 für die Brute-Force-Lösung.
Hennes
5
+! für die yesPipe-Funktion - sehr praktisch!
Andrew Newby
14

Sie wissen, dass RHEL und CentOS versucht haben, unerfahrene Benutzer zu schützen, indem sie Aliase für den Root-Benutzer eingerichtet haben, um ein versehentliches Überschreiben und Löschen von Dateien zu verhindern?

alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'

Der -iWechsel erfordert eine Bestätigung, wenn vorhandene Dateien geändert oder entfernt werden. Da die Aliaserweiterung vor der Ausführung des Befehls erfolgt, muss die Verwendung des --force -f Schalters noch bestätigt werden.

Sie können den Alias ​​dauerhaft entfernen, indem Sie die /root/.bashrcDatei bearbeiten . Entfernen Sie den Alias ​​für die Dauer einer Sitzung mit unalias cp oder verwenden Sie für einen einzelnen Befehl einen der folgenden Befehle:

  • benutze den vollen Pfad /bin/cp
  • Verwenden Sie Anführungszeichen "cp"oder 'cp'um den Befehl
  • Verwenden Sie das Befehlsschlüsselwort, z command cp
  • entkomme dem Befehl \cp
HBruijn
quelle