dengan grep Anda dapat menentukan flag -s yang melakukan cukup banyak apa yang dikatakan @ortang
-s, --no-messages Sembunyikan pesan kesalahan tentang file yang tidak ada atau tidak dapat dibaca. Catatan portabilitas:tidak seperti grep GNU, grep Unix Edisi ke-7 tidak sesuai dengan POSIX, karena tidak memiliki -q dan opsi -snya berperilaku seperti opsi -q GNU grep. grep gaya USG juga tidak memiliki -q tetapi opsi -s berperilaku seperti grep GNU. Skrip shell portabel harus menghindari keduanya -q dan -s dan sebagai gantinya harus mengalihkan output standar anderror ke /dev/null.
dengan menemukan sejauh yang saya tahu jawaban @ortangs adalah yang terbaik. sesuatu seperti
find / -name "myfile" -type f -print 2>/dev/null
Coba alihkan stderr
ke /dev/null
.
[email protected]:/$ grep -rnP 'YII_CORE_PATH' ./ 2> /dev/null | grep -v .svn
Mengarahkan ulang strerr
ke /dev/null
(alias black hole
) adalah cara yang baik untuk menekan kesalahan izin ditolak.
Namun, perhatikan bahwa luka ini tidak hanya menekan permission denied
pesan kecuali SEMUA pesan kesalahan.
Jika Anda ingin mempertahankan pesan kesalahan selain permission denied
maka Anda dapat melakukan sesuatu seperti ini -
grep -rnP 'YII_CORE_PATH' ./ 2>&1 | grep -v 'permission denied' > error.log
Jika Anda tidak ingin mempertahankannya maka yang berikut ini akan baik-baik saja -
grep -rnP 'YII_CORE_PATH' ./ 2> /dev/null | grep -v .svn