web-dev-qa-db-fra.com

Copier sur des fichiers existants sans confirmation?

J'ai besoin de copier et d'écraser une grande quantité de fichiers, j'ai utilisé la commande suivante:

# cp -Rf * ../

Mais chaque fois qu'un fichier du même nom existe sur le dossier de destination, je reçois cette question:

cp: overwrite `../ibdata1'? 

Le problème est que j'ai environ 200 fichiers qui vont être écrasés et je ne pense pas qu'en appuyant sur Y then Enter 200 fois est la bonne façon de le faire.

Alors, quelle est la bonne façon de procéder?

22
Itai Ganot

Tu peux faire yes | cp -rf myxx, Ou si vous le faites en tant que root - votre .bashrc ou .profile a un alias de cp à cp -i, la plupart des systèmes modernes le font pour les profils root.

Vous pouvez contourner temporairement un alias et utiliser la version sans alias d'une commande en la préfixant avec \, par ex.\cp quoi que

43
TBI Infotech

Vous vous rendez compte que RHEL et CentOS ont essayé de protéger les utilisateurs novices en configurant des alias pour l'utilisateur root pour éviter d'écraser et de supprimer accidentellement des fichiers?

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

Le -i switch est ce qui nécessite une confirmation lors de la modification ou de la suppression de fichiers existants. Étant donné que l'expansion des alias se produit avant l'exécution de la commande, même l'utilisation de --force -f le commutateur devra encore être confirmé.

Vous pouvez supprimer définitivement l'alias en modifiant le /root/.bashrc fichier, supprimez l'alias pour la durée d'une session avec unalias cp ou pour une seule commande, utilisez l'une des options suivantes:

  • utilisez le chemin complet /bin/cp
  • utilisez des guillemets "cp" ou 'cp' autour de la commande
  • utilisez le mot-clé de commande, par exemple command cp
  • échapper à la commande \cp
14
HBruijn