locate
a jego warianty wydają się być szybką metodą.
# 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
Jeśli lokalizacja nie jest dostępna, możesz find
zamiast tego użyć . Zwykle jest znacznie wolniejszy, ale także znacznie bardziej precyzyjny.
Jeśli masz jedną partycję: (uruchom jako root, jeśli użytkownik może nie mieć dostępu do pliku)
$ 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
Jeśli nie uwzględnisz -xdev
find
wyszukiwania rzeczy na innych partycjach, takich jak /proc
i /sys
, które mają tendencję do zalewania ekranu błędami, szczególnie jeśli nie jesteś rootem. (Błędy można ukryć, dodając je 2> /dev/null
na końcu polecenia find (komentarz powinien zostać usunięty))
Jeśli masz wiele partycji i nie wiesz, na której z nich znajduje się plik, możesz uzyskać listę lsblk
(w systemach operacyjnych Linux, parsowanie df
danych wyjściowych jest opcją w przeciwnym razie) i podać je w pliku find: (root ponownie, jeśli nie wiem, czy możesz uzyskać dostęp do pliku)
$ 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.
(Jest to trochę niestabilne, jeśli któryś z punktów montowania ma spacje w środku) ( df
parametry mogą wymagać dostrajania. -P powoduje, że GNU df
daje standardowe wyjście POSIX. Inne wersje mogą mieć inne parametry lub wymagać ich pominięcia. Przeczytaj stronę podręcznika)
Nie grep -F
obejmuje innych rzeczy zwróconych, takich jak partycje wymiany.
W wersji innej niż GNU awk znajduje urządzenia z /dev
podłączeniem, zaczynając od, aby uzyskać prawdziwe systemy plików, a następnie drukuje ostatnie pole (mountpoint) z df
wyjścia.
Zakłada to również powłokę typu bourne ( ksh
i bash
powinna działać. Jeśli używasz csh
wariantu, uruchom skryptowalną powłokę przed wypróbowaniem tego)
Book1
, który znajduje się w katalogu, który można odczytać, tofind / -iname book1
go znajdzie. Jesteś pewien, że tak jestBook1
, a nieBook1.xyz
?