Estoy tratando de enumerar el contenido de toda la base de datos apropos
( makewhatis
) con el siguiente comando, pero sigo obteniendo Permission denied
.
sudo -s apropos . > touch thedatabase
-bash: touch: Permission denied
sudo -s apropos . > thedirectory
thedatabase: Permission denied
apropos . > touch thedatabase
Todos estos resultados en alguna forma de Permission Denied
. ¿Cómo puedo evitar esto o cuál es la forma más elegante de hacerlo?
@blm Primero de ustedes tenía razón, mi problema era que estaba en un directorio no autorizado. Para ser claros, ¿la redirección es
—
inthenameofmusik
>
correcta? ¿Y cómo tiene sentido tu ejemplo de poner thedatabase
antes > touch
? No creo tener una comprensión sólida del orden en el que pueden estar estas cosas. ¡Gracias!
Mi ejemplo con thedatabase before> no es realmente un ejemplo, es lo que está haciendo su primer ejemplo. Mientras que las redirecciones normalmente se ponen al final de un comando, que no tienen que ser, por ejemplo,
—
blm
echo hello >echo.out
es la forma en la que normalmente se escribe un comando hacerse eco de una línea que contiene "hola" a la echo.out archivo, pero echo >echo.out hello
y >echo.out echo hello
hacer lo la misma cosa. Entonces, en su primer ejemplo, el shell ve > touch
y trata eso como una redirección al toque del archivo, luego, cuando ve thedatabase
, se trata como un argumento de comando más.
impresionante, eso tiene mucho sentido. muchas gracias.
—
inthenameofmusik
sudo -s apropos . thedatabase > touch
, de manera similar, el último ejemplo. Tal vez solo intenteapropos . >/tmp/ap.out
, debería poder escribir en / tmp.