
Recientemente instalé un sistema Arch-Linux. si escribo
echo $PATH
apunta (entre otros) a un directorio dentro de mi. /home/user/dir
Recuerdo que lo configuré en algún lugar. También lo tengo como usuario root, por lo que no puede estar ~/.bashrc
ni tampoco en /root/.bashrc
. También miré dentro /etc/profile
y /etc/bash.bashrc
no pude encontrarlo allí tampoco.
¿Hay alguna manera de encontrar dónde está configurado?
Respuesta1
Intente buscar el directorio en todos los archivos en /etc
:
sudo grep -r "/home/user/dir" /etc
El -r
interruptor grep
busca /home/user/dir
en elcontenidode todos los archivos en /etc
y sus subdirectorios.
Degrep(1) - página de manual de Linux:
-dACCIÓN,--directorios=ACCIÓN
Si un archivo de entrada es un directorio, use ACCIÓN para procesarlo. Por defecto, ACCIÓN esleer, lo que significa que los directorios se leen como si fueran archivos normales. Si la ACCIÓN essaltar, los directorios se omiten silenciosamente. Si la ACCIÓN esrecursivo, grep lee todos los archivos de cada directorio, de forma recursiva; esto es equivalente a la-ropción.
Si eso falla, simplemente podría ampliar la búsqueda atodoarchivos:
sudo grep -r "/home/user/dir" /
O podrías buscar todos los archivos que modifican la PATH
variable:
sudo grep -r "PATH=" /
Respuesta2
Generalmente es una mala idea colocar directorios de usuarios en la ruta global como raíz;) ¿Revisaste el /etc/environment
archivo?
Respuesta3
¡@Dennis me señala una buena idea! Busqué dentro de mi /etc
y lo encontré, pero con otro comando, ya que su comando solo busca nombres de archivos (hasta donde tengo entendido).
El que utilicé con éxito fue
find / -type f -exec grep -i /home/user/dir '{}' \; -print
Respuesta4
Si está investigando dónde se define algo en su RUTA, puede probar esta alternativa usandoel buscador de platapara una búsqueda rápida.
De forma predeterminada, genera coincidencias con números de línea, así que combínelo con egrep
para obtener solo resultados de nombres de archivos. También generará números de línea que contienen coincidencias cut
para aislar los nombres de archivos y uniq
si no desea duplicados. Por supuesto, cualquiera de los comandos canalizados se puede omitir si no se desea obtener una salida completa de las coincidencias.
ag -s '/home/user/dir' | egrep '^\d+' | cut -d ':' -f 1 | uniq