Onay olmadan cp'nin üzerine yazmaya zorlama


668

cpKomutu kullanmaya ve üzerine yazmaya zorlamaya çalışıyorum .

Denedim cp -rf /foo/* /bar, ama yine de her bir üzerine yazma işlemini onaylamanız isteniyor.

Yanıtlar:


1113

Sen yapabilirsin yes | cp -rf xxx yyyama benim gutfeeling root olarak yaparsanız söylüyor - sizin .bashrcveya .profileait bir takma adı cpile cp -i, en modern sistemler (öncelikle RH-türevleri) kök profillerine bunu.

Varolan diğer adları aliaskomut isteminde çalıştırarak veya which cpyalnızca diğer adları denetleyerek denetleyebilirsiniz cp.

Tanımlanmış bir takma unalias cpadınız varsa , çalıştırma geçerli oturum için bunu kaldırır, aksi takdirde yalnızca kabuk profilinizden kaldırabilirsiniz.

Bir takma adı geçici olarak atlayabilir ve bir komutun takma adı olmayan sürümünü \, örneğin ön ekiyle kullanabilirsiniz.\cp whatever


3
Ayrıca, dikkatli olun - eğer takma doğrudan .bashrc yazılmış olsa dahi şey , bu davranış içine çalışacaktır başka cp için takma işleyen başka bir şey arama sona bu dosya aramaları uçları.
Jon

4
"Modern sistemler" ile RHEL / centos / fedora ve belki de başka bir şey anlamına gelir, Debian / Ubuntu cp takma adı yapmaz. Sunucuda RHEL'i tercih ediyorum ve neredeyse on yıldır Fedora'yı kullanıyorum, ancak Ubuntu'nun topluluk desteği ve Nvidia Fedora kurulumumu öldürdükten sonra Gnome'a ​​geri dönme beni şaşırttı. Ben ¯\_(ツ)_/¯bununla ilgiliyim.
Ray Foss

2
@RayFoss Bir (primarily RH-derivatives)açıklama
ekledi

unalias cpkopyalamak istediğiniz her şeyi yaptıktan ve kopyaladıktan sonra, yaparak diğer adını varsayılan değerine geri ayarlayabilirsiniz alias cp='cp -i'. Bundan sonra, alias cpvarsayılan takma ada geri döndüğünü doğrulamak için çalıştırın .
jaxarroyo

287

Bunun nedeni büyük olasılıkla cpbenzer bir şeye zaten takma adın verilmesidir cp -i. cpDoğrudan arama yapmalı:

/bin/cp -rf /zzz/zzz/* /xxx/xxx

Bunu aşmanın başka bir yolu şu yeskomutu kullanmaktır :

yes | cp -rf /zzz/zzz/* /xxx/xxx

6
evet, unalias cp -i yaptım, şimdi çalışıyor .. Değerli cevabınız için teşekkür ederim.
thiyagu114

5
Unix'in yeskomutu vermesini seviyorum . Neşeli. Ve bir gün kullanabilirim.
Matthew Leingang

3
evet takma, güzel yakalamak :) Orijinal cp aramak için \ cp kullanabilirsiniz, yolu hatırlamak daha kolay / bin / cp
Hugo Zaragoza

Evet, bu takma adı atlamanın başka bir yolu. Biraz temiz bir kesmek!
pgl

1
Bu şekilde daha güvenlidir.
plusmancn

115

Diğer bazı yanıtlar belirttiğimiz gibi, muhtemelen eşleyen bir takma bir yere kullanmak cpiçin cp -iveya buna benzer. Bir komutu ters eğik çizgi ile başlayarak herhangi bir diğer ad kullanmadan çalıştırabilirsiniz. Senin durumunda, dene

\cp -r /zzz/zzz/* /xxx/xxx

Ters eğik çizgi aradığınız diğer adları geçici olarak devre dışı bırakır cp.


2
@zhouji Cevabımda belirtildiği gibi, boşluk takma adı devre dışı bırakır. Bunun yerine takma çağırmak cp, \cppencerenizin açılmasına neden olur cp. Bu koşmaya eşdeğer gibi görünüyor command cp.
Chris

66

Muhtemelen haritalama, bir takma bir yere sahip cpüzere cp -i; çünkü varsayılan ayarlarla cpüzerine yazmak istemez. Kontrol edin .bashrc, .profilevb.

Bkz. Cp manpage : Sadece -iparametre belirtildiğinde cpüzerine yazmadan önce bilgi verir.

Bunu şu aliaskomutla kontrol edebilirsiniz :

$ alias
alias cp='cp -i'
alias diff='diff -u'
....

Takma adı tanımlamak için şunu kullanın:

$ unalias cp

evet, unalias cp -i yaptım, şimdi çalışıyor .. Değerli cevabınız için teşekkür ederim.
thiyagu114

1
sadece "unalias cp"
Krv Perera

49

Diğer cevapların belirttiği gibi, bu cpbir takma adsa olabilir cp -i.

Diğer ad olmadan kullanmak \için cpkomuttan önce a ekleyebilirsiniz .

\cp -fR source target

1
Söylediğiniz gibi, diğerleri bunu zaten belirtti. Bu neden 45 oy aldı?
phil294

@ phil294 Sanırım bu takma adı değiştirmeden veya diğer kullanımlar için yararlı olabilecek cp takma adını kaldırmadan en kolay yoldur. `` Burada çok faydalı.
Arnold Roa

18

Varsayılan cpolarak cp -i. Kontrol edebilir, yazabilir aliasve aşağıdakilere benzer bazılarını görebilirsiniz:

alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'

Bu sorunu çözmek için /bin/cp /from /tobunun yerine komutu kullanıncp /from /to


9

bu komutu da kullanabilirsiniz:

cp -ru /zzz/zzz/* /xxx/xxx

mevcut dosyanızı yenisiyle günceller.


8

cp genellikle böyle takma

alias cp='cp -i'   # i.e. ask questions of overwriting

üzerine yazmak istediğinizden eminseniz, bunu kullanın:

/bin/cp <arguments here> src dest


7

Bu yüzden çok fazla karşılaştım çünkü cp'yi takma adı cp -ivtuttum ve düzgün bir numara buldum. Önceki yazım yönergelerini iptal ederken -ive -nher ikisinin de iptal -fetmediği ortaya çıkıyor . Ancak, kullanırsanız -nftemizleme yeteneği ekler -i. Yani:

cp -f /foo/* /bar  <-- Prompt
cp -nf /foo/* /bar <-- No Prompt

Oldukça temiz ha? / necropost



5

Komutu takma ad olmadan çağırmanın başka bir yolu da commandyerleşiği bash'de kullanmaktır .

command cp -rf /zzz/zzz/*


4

-n "üzerine yazmak değil" ama sorusu sizin yanıtladığınızın tam tersidir.

Bu onayı önlemek için cp komutunu mutlak yolla çalıştırabilirsiniz, takma adı önleyecektir.

/ bin / cp kaynakdosyası hedefi


2

Takma adı olduğu gibi global düzeyde tutmak istiyorsanız ve sadece komut dosyanız için değiştirmek istiyorsanız.

Sadece kullan:

takma ad cp = cp

ve ardından takip komutlarınızı yazın.


0

Sadece "cp -i" takma adını kaldırmak için unalias kullandım, sonra kopyayı yaptım, sonra takma adı geri ayarladım. :

unalias cp  
cp -f foo foo.copy  
alias cp="cp -i"  

En güzel kod değil, ama ayarlanması kolay ve verimli. Ayrıca takma adın zaten basit bir şekilde ayarlandığını kontrol ediyorum

alias |grep cp

-2

Öyle değil cp -i. Eğer sizden onay istenmezse cp -n; Örneğin:

cp -n src dest

Veya dizin / klasör olması durumunda:

cp -nr src_dir dest_dir

2
Diğerleri, kullanıcıya bakan cp'nin cp -isistem tarafından bağlandığını , yani varsayılanın üstesinden gelmeye ve üzerine yazmaya zorlamaya çalıştıklarını belirtiyorlardı . Bu önerdi sözdizimi olduğu için karıştırmış olabileceği gibi geliyor ama -nolacak önlemek üzerine yazan.
Abandoned Cart
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.