cp
Komutu kullanmaya ve üzerine yazmaya zorlamaya çalışıyorum .
Denedim cp -rf /foo/* /bar
, ama yine de her bir üzerine yazma işlemini onaylamanız isteniyor.
cp
Komutu 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 yyy
ama benim gutfeeling root olarak yaparsanız söylüyor - sizin .bashrc
veya .profile
ait bir takma adı cp
ile cp -i
, en modern sistemler (öncelikle RH-türevleri) kök profillerine bunu.
Varolan diğer adları alias
komut isteminde çalıştırarak veya which cp
yalnızca diğer adları denetleyerek denetleyebilirsiniz cp
.
Tanımlanmış bir takma unalias cp
adı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 cp
kopyalamak 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 cp
varsayılan takma ada geri döndüğünü doğrulamak için çalıştırın .
Bunun nedeni büyük olasılıkla cp
benzer bir şeye zaten takma adın verilmesidir cp -i
. cp
Doğrudan arama yapmalı:
/bin/cp -rf /zzz/zzz/* /xxx/xxx
Bunu aşmanın başka bir yolu şu yes
komutu kullanmaktır :
yes | cp -rf /zzz/zzz/* /xxx/xxx
yes
komutu 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 cp
için cp -i
veya 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
, \cp
pencerenizin 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
, .profile
vb.
Bkz. Cp manpage : Sadece -i
parametre belirtildiğinde cp
üzerine yazmadan önce bilgi verir.
Bunu şu alias
komutla 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 cp
bir takma adsa olabilir cp -i
.
Diğer ad olmadan kullanmak \
için cp
komuttan önce a ekleyebilirsiniz .
\cp -fR source target
Varsayılan cp
olarak cp -i
. Kontrol edebilir, yazabilir alias
ve 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 /to
bunun 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 -iv
tuttum ve düzgün bir numara buldum. Önceki yazım yönergelerini iptal ederken -i
ve -n
her ikisinin de iptal -f
etmediği ortaya çıkıyor . Ancak, kullanırsanız -nf
temizleme 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 command
yerleş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 -i
sistem 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 -n
olacak önlemek üzerine yazan.