2013-03-28 23 views

cevap

40

İki seçeneğiniz vardır:

$ rm tempfl.txt 2> /dev/null 

Yönlendirme komut dizisi /dev/null

$ ./myscript.sh 2> /dev/null 

ikincisi için

Durdurulmasına rm uyarılar diğer tüm uyarı mesajları eksik bir dezavantajı var senaryonun tarafından üretildi.

+2

rm -f dikkatli kullanılmalıdır. – hetepeperfan

+0

iyi nokta, teşekkürler – kamituel

2

Yukarıdaki cevaplar ekleme

rm tempfl2.txt 2> /dev/null 
2

gibi/dev/null tüm hata mesajı yönlendirmesi gerekir: Muhtemelen (reddedildi izni ya da bazı tür gibi) hata mesajları tutmak için daha iyi bir fikirdir. Sadece silmeden önce dosyanın varlığını sınamak:

[ -f file.txt ] && rm file.txt 

Bu kabuk, örneğin Bash gibi bir Bourne varsayar. Yukarıdakiler, bir dizini silmeye çalışmadığı ek yararına sahiptir, rm yapamaz. Dosya does not

-f, --force ignore nonexistent files, never prompt 

komut ayrıca durumunda sıfır olmayan bir hata kodu bildirmez: Böyle

rm -f tempfl.txt 

-f seçeneği eylemler:

+0

teşekkürler bu çok çalıştı –

0
Biz çıkış hatası bastırmak için 2> /dev/null kullanabilirsiniz

ve || true başarılı çıkış durumu sağlamak için: Eğer vb bir kabuk, makefile komutunu kullanıyorsanız

rm foo 
=> rm: cannot remove ‘foo’: No such file or directory 

rm foo 2> /dev/null 
echo $? 
=> 1 

rm foo 2> /dev/null || true 
echo $? 
=> 0 

, belki de bu gereklidir.

İlgili konular