bagaimana cara menghentikan cp: menimpa './xxx'? cepat


19

Bagaimana saya bisa menghentikan perintah cp dari meminta untuk menimpa. Saya ingin menimpa semua file tanpa harus kembali ke terminal. Karena ini adalah file besar dan perlu waktu untuk diselesaikan.

Saya mencoba menggunakan opsi -f. Masih bertanya apakah saya ingin menimpa.

   -f, --force
          if an existing destination file cannot be opened, remove it and
          try again (redundant if the -n option is used)

cp -f /media/somedir/somefiles* .  
cp: overwrite `./somefilesxxx'? y

Jawaban:


17

Selain menelepon /bin/cp, Anda dapat melakukan salah satu dari:

\cp -f ...
command cp -f ...

Namun, saya setuju bahwa Anda seharusnya tidak terbiasa menggunakan alias cp -iatau rm -i- jika Anda duduk di shell yang berbeda, Anda tidak akan memiliki jaring pengaman yang menjadi andalan Anda.


1
A whereis cpakan menunjukkan di mana perintahnya. Jadi, Anda dapat memanggil perintah yang sebenarnya, bukan alias.
AnthonyB

12

Setelah melihat solusi ini. Saya bisa melihat bahwa fitur bashes alias menyebabkan masalah. http://systembash.com/content/prompt-to-confirm-copy-even-with-cp-f/

which cp  
alias cp='cp -i'
/bin/cp
which cp | grep cp
alias cp='cp -i'
/bin/cp

Dia merekomendasikan

unalias cp

Saya masih ingin menyimpan alias saya hanya tidak ingin itu berlaku untuk contoh ini. Solusi saya adalah menggunakan biner dengan path lengkap, sehingga fungsi bashes alias tidak mengambil alih. Itu bekerja dengan cukup baik.

/bin/cp -f /media/somedir/somefiles* .  

4

Sayangnya di Linux, perintah copy "cp" tidak memiliki opsi untuk secara otomatis menjawab pertanyaan ini dengan jawaban "y" atau "n". Ada lebih dari satu solusi untuk masalah ini tergantung pada apa yang ingin Anda lakukan. Salah satu solusinya adalah dengan menggunakan perintah Unix "ya". Perintah ini akan menampilkan string berulang kali hingga mati.

Jika kami ingin menimpa semua file di direktori tujuan, Anda dapat menggunakan perintah "ya" untuk menjawab semua pertanyaan dengan "y". "y" adalah nilai default sehingga tidak harus ditentukan.

yes | cp source/*.txt destination/.

Jika kami ingin menghindari menimpa salah satu file di direktori tujuan Anda dapat menggunakan perintah "ya" untuk menjawab semua pertanyaan dengan tidak "n".

yes n | cp source/*.txt destination/.

Gunakan "man yes" untuk informasi lebih lanjut tentang perintah "yes".

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.