Copiar arquivos existentes sem confirmação?

11

Eu preciso copiar e sobrescrever uma grande quantidade de arquivos. Usei o seguinte comando:

# cp -Rf * ../

Mas sempre que um arquivo com o mesmo nome existe na pasta de destino, recebo esta pergunta:

cp: overwrite '../ibdata1'? 

O problema é que tenho cerca de 200 arquivos que serão sobrescritos e não acho que pressionar Y then Enter 200 vezes seja a maneira correta de fazê-lo.

Então, qual é o caminho certo para isso?

    
por Itai Ganot 24.07.2014 / 07:30

2 respostas

31

Você pode fazer yes | cp -rf myxx , Ou se você fizer isso como root - seu .bashrc ou .profile tem um alias de cp para cp -i, a maioria dos sistemas modernos faz isso com perfis de raiz.

Você pode ignorar temporariamente um alias e usar a versão sem alias de um comando prefixando-a com \, por exemplo, \ cp whatever

    
por 24.07.2014 / 07:37
12

Você percebe que o RHEL e o CentOS tentaram proteger os usuários iniciantes configurando aliases para o usuário root para evitar a substituição acidental e a exclusão de arquivos?

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

A opção -i é o que requer confirmação ao modificar ou remover arquivos existentes. Como a expansão de alias ocorre antes da execução do comando, até mesmo o uso da opção --force -f ainda exigirá confirmação.

Você pode remover o alias permanentemente editando o arquivo /root/.bashrc , remover o alias pela duração de uma sessão com unalias cp ou, para um único comando, usar um dos seguintes:

  • use o caminho completo /bin/cp
  • use aspas "cp" ou 'cp' ao redor do comando
  • use a palavra-chave de comando, por exemplo command cp
  • escape do comando \cp
por 24.07.2014 / 09:14

Tags