shell - Excluir todos los mensajes de permiso denegado de "du"
sorting warnings (4)
2> / dev / nul solo oculta los mensajes de error.
el comando du siempre intenta ejecutar sobre el directorio. Imagina que tienes miles de dirs?
du necesita eval, si tiene que ejecutar la ejecución, si no, siga con el siguiente directorio ...
Estoy tratando de evaluar el uso del disco de varias cuentas de usuario de Unix. Simplemente, estoy usando el siguiente comando:
du -cBM --max-depth=1 | sort -n
Pero he visto muchos mensajes de error como abajo. ¿Cómo puedo excluir todos los mensajes de "Permiso denegado" de la pantalla?
du: `./james/.gnome2'': Permission denied
Mi solicitud podría ser muy similar a la siguiente lista, al reemplazar "encontrar" por "du".
¿Cómo puedo excluir todos los mensajes de "permiso denegado" de "encontrar"?
El siguiente hilo no funciona. Supongo que estoy usando bash.
Excluyendo los archivos ocultos de la salida del comando du con --exclude, grep -v o sed
Si 2>/dev/null
no funciona, probablemente el shell que está utilizando no es bash
.
Para verificar qué shell está utilizando, puede probar ps -p $$
(consulte https://askubuntu.com/a/590903/130162 )
Usaría algo conciso que excluye solo las líneas que no quiere ver. Redirigir stderr a stdout, y grep para excluir todas las "denegadas" s:
du -cBM --max-depth=1 2>&1 | grep -v ''denied'' | sort -n
du -cBM --max-depth=1 2>/dev/null | sort -n
o mejor en bash (simplemente filtre este error en particular, no todos como el último fragmento)
du -cBM --max-depth=1 2> >(grep -v ''Permission denied'') | sort -n