Descubra dónde se define $PATH

Descubra dónde se define $PATH

Recientemente instalé un sistema Arch-Linux. si escribo

echo $PATH

apunta (entre otros) a un directorio dentro de mi. /home/user/dirRecuerdo que lo configuré en algún lugar. También lo tengo como usuario root, por lo que no puede estar ~/.bashrcni tampoco en /root/.bashrc. También miré dentro /etc/profiley /etc/bash.bashrcno 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 -rinterruptor grepbusca /home/user/diren elcontenidode todos los archivos en /etcy 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 PATHvariable:

sudo grep -r "PATH=" /

Respuesta2

Generalmente es una mala idea colocar directorios de usuarios en la ruta global como raíz;) ¿Revisaste el /etc/environmentarchivo?

Respuesta3

¡@Dennis me señala una buena idea! Busqué dentro de mi /etcy 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 egreppara obtener solo resultados de nombres de archivos. También generará números de línea que contienen coincidencias cutpara aislar los nombres de archivos y uniqsi 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

información relacionada