Menyalin file yang ada tanpa konfirmasi?

18

Saya perlu menyalin dan menulis banyak file dalam jumlah besar, saya telah menggunakan perintah berikut:

# cp -Rf * ../

Tetapi kemudian setiap kali file dengan nama yang sama ada di folder tujuan saya mendapatkan pertanyaan ini:

cp: overwrite `../ibdata1'? 

Masalahnya adalah saya memiliki sekitar 200 file yang akan ditulis berlebihan dan saya tidak berpikir bahwa menekan Y then Enter200 kali adalah cara yang tepat untuk melakukannya.

Jadi, apa cara yang benar untuk itu?

Itai Ganot
sumber

Jawaban:

38

Anda dapat melakukannya yes | cp -rf myxx, atau jika Anda melakukannya sebagai root - .bashrc atau .profile Anda memiliki alias cp ke cp -i, kebanyakan sistem modern melakukannya untuk me-root profil.

Anda dapat mem-bypass alias untuk sementara dan menggunakan versi non-alias dari sebuah perintah dengan mengawalinya dengan \, misal \ cp apapun

TBI Infotech
sumber
4
+1 untuk menunjukkan cara memintas alias. Tergoda -1 untuk solusi brute force.
Hennes
5
+! untuk yesfungsi pipa - sangat berguna!
Andrew Newby
14

Anda sadar bahwa RHEL dan CentOS telah mencoba melindungi pengguna pemula dengan mengatur alias bagi pengguna root untuk mencegah menimpa dan menghapus file secara tidak sengaja?

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

The -iswitch apa memerlukan konfirmasi ketika memodifikasi atau menghapus file yang ada. Karena ekspansi alias terjadi sebelum pelaksanaan perintah bahkan penggunaan --force -f sakelar masih akan memerlukan konfirmasi.

Anda dapat menghapus alias secara permanen dengan mengedit /root/.bashrcfile, menghapus alias selama durasi sesi dengan unalias cp atau untuk satu perintah, gunakan salah satu dari:

  • gunakan path lengkap /bin/cp
  • gunakan tanda kutip "cp"atau 'cp'sekitar perintah
  • gunakan kata kunci perintah mis command cp
  • lepas dari perintah \cp
HBruijn
sumber