cp nasıl durdurulur: './xxx' üzerine yazılır? Komut istemi


19

Cp komutunun üzerine yazılmasını istemesini nasıl durdurabilirim? Terminale geri dönmek zorunda kalmadan tüm dosyaların üzerine yazmak istiyorum. Bunlar büyük dosyalar olduğundan ve tamamlanması biraz zaman alır.

-F seçeneğini kullanmayı denedim. Yine de üzerine yazmak isteyip istemediğimi soruyor.

   -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

Yanıtlar:


17

Aramaya ek olarak /bin/cp, şunlardan birini de yapabilirsiniz:

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

Ancak, benzer bir takma ad kullanmaya alışmamanız gerektiğini kabul ediyorum cp -iveya rm -i- farklı bir kabuğa oturursanız, bağımlı olduğunuz güvenlik ağına sahip olmayacaksınız.


1
Bir whereis cpkomutun nerede olduğunu gösterecektir. Böylece takma ad yerine gerçek komutu çağırabilirsiniz.
AnthonyB

12

Bu çözümü gördükten sonra. Bashes takma özelliğinin sorunlara neden olduğunu görebiliyordum. 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

O öneriyor

unalias cp

Hâlâ bu örneğe uygulanmasını istemediğim diğer adı saklamak istiyorum. Benim çözümüm ikili tam yol ile kullanmak, böylece bashes takma işlevi devralmaz. Oldukça iyi çalışıyor.

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

4

Ne yazık ki Linux'ta kopya "cp" komutunun bu soruyu otomatik olarak "y" veya "n" yanıtı ile cevaplama seçeneği yoktur. Ne yapmak istediğinize bağlı olarak bu soruna birden fazla çözüm var. Bir çözüm Unix "yes" komutunu kullanmaktır. Bu komut öldürülünceye kadar art arda bir dize verir.

Hedef dizindeki tüm dosyaların üzerine yazmak istiyorsak, tüm soruları "y" ile cevaplamak için "evet" komutunu kullanabilirsiniz. "y" varsayılan bir değerdir, bu nedenle belirtilmesi gerekmez.

yes | cp source/*.txt destination/.

Hedef dizindeki dosyaların üzerine yazmaktan kaçınmak istiyorsak, tüm soruları "n" ile cevaplamak için "evet" komutunu kullanabilirsiniz.

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

"Evet" komutu hakkında daha fazla bilgi için "evet adam" ı kullanın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.