locate
y sus variantes tienden a ser un método rápido.
# updatedb # run as root, possibly using sudo, e.g. sudo -b updatedb. If file is on the system for more than a day it should already be in the index and this can be skipped
$ locate -i book1
Si localizar no está disponible, puede usar find
en su lugar. Tiende a ser mucho más lento, pero también mucho más preciso.
Si tiene una única partición: (ejecute como root si su usuario puede no tener acceso al archivo)
$ find / -xdev -iname 'book1*' -print # If the iname extension to find is available
$ find / -xdev -print | grep -F -i /book1 # if iname is not available
Si no incluye -xdev
find
búsquedas en otras particiones, como /proc
y /sys
, que tienden a inundar su pantalla con errores, especialmente si no es root. (Los errores se pueden ocultar agregando 2> /dev/null
al final del comando de búsqueda (el comentario debe eliminarse))
Si tiene varias particiones y no sabe en cuál está el archivo, puede obtener una lista con lsblk
(en sistemas operativos basados en Linux, la df
salida de análisis es una opción de lo contrario) y alimentar eso en find: (rootear nuevamente si no sé si puedes acceder al archivo)
$ find $(lsblk -O MOUNTPOINT -n | grep -F /) -xdev -iname 'book1*' -print # GNU-based OSes
$ find $(df -P|awk '$1 ~ /^\/dev/ {print $NF}') -xdev | grep -F -i book1 # Non-GNU based OSes.
(Esto es un poco frágil si alguno de sus puntos de montaje tiene espacios) (los df
parámetros pueden necesitar ajuste. -P hace que GNU df
proporcione la salida POSIX estándar. Otras versiones pueden tener otros parámetros o necesitarlos. Lea su página de manual)
El grep -F
excluye otras cosas devueltas, como particiones de intercambio.
En la versión que no es GNU, awk busca dispositivos con un montaje que comience /dev
para obtener sistemas de archivos reales y luego imprima el último campo (el punto de montaje) desde la df
salida.
Esto también supone un shell tipo bourne ( ksh
y bash
debería funcionar. Si está utilizando una csh
variante, inicie un shell con script antes de intentarlo)
Book1
y está en un directorio que puede leer,find / -iname book1
lo encontrará. ¿Estás seguro de que es asíBook1
y noBook1.xyz
?find
ylocate
.locate
es generoso y encontrará todo lo que coincida, siempre que esté en su base de datos, que normalmente se actualiza a diario.find
, en este caso, está buscando un archivo glob, el tipo de patrón que usaríals
. Probablemente te refieresiname '*book1*'
. Tenga en cuenta que el patrón debe estar entre comillas para evitar que el shell lo expanda antes defind
poder verlo. Observe también quefind
, como muchos comandos * nix, es frustrantemente silencioso cuando no tiene éxito.