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.
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:
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
¯\_(ツ)_/¯bununla ilgiliyim.
(primarily RH-derivatives)açıklama
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 .
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
yeskomutu vermesini seviyorum . Neşeli. Ve bir gün kullanabilirim.
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.
cp, \cppencerenizin açılmasına neden olur cp. Bu koşmaya eşdeğer gibi görünüyor command cp.
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
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
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
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
Bunu buldum
'cp' -rf * /data/danalonso_testing/target/
Kaynak: /superuser/358843/how-to-replace-all-the-contents-from-one-folder-with-another-one/358851
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
cp -u ...
cp --update ...
ayrıca çalışır.
Komutu takma ad olmadan çağırmanın başka bir yolu da commandyerleşiği bash'de kullanmaktır .
command cp -rf /zzz/zzz/*
-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
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.
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
Ö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
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.