La mayoría de las personas usan un administrador de archivos gráficos para encontrar archivos en Linux, como Nautilus en Gnome, Dolphin en KDE y Thunar en Xfce. Sin embargo, hay varias formas de usar la línea de comandos para encontrar archivos en Linux, sin importar qué administrador de escritorio use.
¿De qué vamos a hablar?
Uso del comando Buscar
El comando “buscar” le permite buscar archivos para los que conoce los nombres de archivo aproximados. La forma más simple del comando busca archivos en el directorio actual y recursivamente a través de sus subdirectorios que coinciden con los criterios de búsqueda proporcionados. Puede buscar archivos por nombre, propietario, grupo, tipo, permisos, fecha y otros criterios.
Al escribir el siguiente comando en el símbolo del sistema, se enumeran todos los archivos que se encuentran en el directorio actual.
find .
El punto después de “buscar” indica el directorio actual.
Para buscar archivos que coincidan con un patrón específico, utilice el botón -name
argumento. Puede utilizar metacaracteres de nombre de archivo (como *
), pero debe poner un carácter de escape ( /
) delante de cada uno de ellos o encerrarlos entre comillas.
Por ejemplo, si queremos encontrar todos los archivos que comienzan con “pro” en el directorio Documents, usaríamos el cd Documents/
para cambiar al directorio Documents y, a continuación, escriba el comando siguiente:
find . -name pro/*
Se enumeran todos los archivos en el directorio actual que comienzan con “pro”.
Nota : el comando find predeterminado es que no se puede encontrar entre mayúsculas y minúsculas. Si desea que la búsqueda de una palabra o frase no tenga en cuenta las mayúsculas y minúsculas, utilice el -iname
con el comando find. Es la versión insensible a mayúsculas y minúsculas de la -name
mandar.
Si find
no localiza ningún archivo que coincida con sus criterios, no produce ningún resultado.
El comando find tiene muchas opciones disponibles para refinar la búsqueda. Para obtener más información acerca del comando find, ejecute man find
en una ventana de Terminal y pulse Intro.
Uso del comando Locate
El comando locate es más rápido que el comando find porque utiliza una base de datos creada previamente, mientras que el comando find busca en el sistema real, a través de todos los directorios y archivos reales. El comando locate devuelve una lista de todos los nombres de ruta de acceso que contienen el grupo de caracteres especificado.
La base de datos se actualiza periódicamente desde cron, pero también puede actualizarla usted mismo en cualquier momento para que pueda obtener resultados actualizados al minuto. Para ello, escriba el siguiente comando en el símbolo del sistema:
sudo updatedb
Introduzca su contraseña cuando se le solicite.
La forma básica del comando locate encuentra todos los archivos en el sistema de archivos, comenzando en la raíz, que contienen todos o parte de los criterios de búsqueda.
locate mydata
Por ejemplo, el comando anterior encontró dos archivos que contenían “mydata” y un archivo que contenía “data”.
Si desea encontrar todos los archivos o directorios que contengan exactamente y solo sus criterios de búsqueda, utilice el botón -b
con el comando locate, como se indica a continuación.
locate -b ‘/mydata’
La barra diagonal inversa en el comando anterior es un carácter de globbing, que proporciona una forma de expandir caracteres comodín en un nombre de archivo no específico en un conjunto de nombres de archivo específicos. Un comodín es un símbolo que se puede reemplazar por uno o más caracteres cuando se evalúa la expresión. Los símbolos comodín más comunes son el signo de interrogación ( ?
), que significa un solo carácter y el asterisco ( *
), que significa una cadena contigua de caracteres. En el ejemplo anterior, la barra diagonal inversa deshabilita el reemplazo implícito de “mydata” por “*mydata*” para que termine con solo resultados que contengan “mydata”.
El comando mlocate es una nueva implementación de locate. Indexa todo el sistema de archivos, pero los resultados de la búsqueda solo incluyen archivos a los que el usuario actual tiene acceso. Al actualizar la base de datos mlocate, mantiene la información de marca de tiempo en la base de datos. Esto permite a mlocate saber si el contenido de un directorio cambió sin volver a leer el contenido y hace que las actualizaciones de la base de datos sean más rápidas y menos exigentes en su disco duro.
Al instalar mlocate, el archivo binario /usr/bin/locate cambia para apuntar a mlocate. Para instalar mlocate, si aún no está incluido en su distribución de Linux, escriba el siguiente comando en el símbolo del sistema.
sudo apt-get install mlocate
NOTA: Le mostraremos un comando más adelante en este artículo que le permite determinar dónde se encuentra el ejecutable de un comando, si existe.
El comando mlocate no utiliza el mismo archivo de base de datos que el comando locate estándar. Por lo tanto, es posible que desee crear la base de datos manualmente escribiendo el siguiente comando en el símbolo del sistema:
sudo /etc/cron.daily/mlocate
El comando mlocate no funcionará hasta que la base de datos se cree manualmente o cuando el script se ejecute desde cron.
Para más información enformación sobre el comando locate o mlocate, escriba man locate
o man mlocate
en una ventana de Terminal y pulse Intro. Se muestra la misma pantalla de ayuda para ambos comandos.
Uso del comando Which
El comando “which” devuelve la ruta absoluta del ejecutable al que se llama cuando se emite un comando. Esto es útil para encontrar la ubicación de un ejecutable para crear un acceso directo al programa en el escritorio, en un panel u otro lugar del administrador de escritorio. Por ejemplo, escribir el comando which firefox
muestra los resultados que se muestran en la imagen a continuación.
De forma predeterminada, el comando which solo muestra el primer ejecutable coincidente. Para mostrar todos los ejecutables coincidentes, utilice el -a
con el comando:
which -a firefox
Puede buscar varios ejecutables utilizando a la vez, como se muestra en la siguiente imagen. Solo se muestran las rutas de acceso a los ejecutables encontrados. En el siguiente ejemplo, solo se encontró el ejecutable “ps”.
NOTA: El comando which sólo busca la variable PATH del usuario actual. Si busca un ejecutable que solo esté disponible para el usuario raíz como usuario normal, no se mostrará ningún resultado.
Para obtener más información sobre el comando qué, escriba “man which” (sin las comillas) en el símbolo del sistema en una ventana de Terminal y presione Entrar.
Uso del comando Whereis
El comando whereis se utiliza para averiguar dónde se encuentran los archivos binarios, de origen y de página man de un comando. Por ejemplo, escribir whereis firefox
en el símbolo del sistema se muestran los resultados como se muestra en la siguiente imagen.
Si desea que sólo se muestre la ruta de acceso al ejecutable, y no las rutas de acceso a las páginas de origen y man(ual), utilice el comando -b
opción. Por ejemplo, el comando whereis -b firefox
sólo se mostrará /usr/bin/firefox
como resultado. Esto es útil porque lo más probable es que busque el archivo ejecutable de un programa con más frecuencia de lo que buscaría las páginas de origen y man de ese programa. También puede buscar solo los archivos de origen ( -s
) o sólo para las páginas man ( -m
).
Para obtener más información acerca del comando whereis, escriba man whereis
en una ventana de Terminal y pulse Intro.
Comprender la diferencia entre el comando Whereis y el comando Which
El comando whereis muestra la ubicación de las páginas binaria, de origen y man de un comando, mientras que el comando which solo muestra la ubicación del binario del comando.
El comando whereis busca a través de una lista de directorios específicos para los archivos binarios, de origen y man, mientras que el comando which busca en los directorios enumerados en la variable de entorno PATH del usuario actual. Para el comando whereis, la lista de directorios específicos se puede encontrar en la sección ARCHIVOS de las páginas man del comando.
Cuando se trata de resultados mostrados de forma predeterminada, el comando whereis muestra todo lo que encuentra, mientras que el comando which solo muestra el primer ejecutable que encuentra. Puede cambiar eso usando el -a
opción, discutida anteriormente, para el comando qué.
Debido a que el comando whereis solo utiliza rutas codificadas en el comando, es posible que no siempre encuentre lo que está buscando. Si está buscando un programa que cree que podría estar instalado en un directorio que no aparece en las páginas man para el comando whereis, es posible que desee utilizar el comando which con el comando -a
para encontrar todas las apariciones del comando en todo el sistema.