locate
và các biến thể của nó có xu hướng là một phương pháp nhanh.
# 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
Nếu định vị không có sẵn, bạn có thể sử dụng find
thay thế. Nó có xu hướng chậm hơn nhiều, nhưng cũng chính xác hơn nhiều.
Nếu bạn có một phân vùng duy nhất: (chạy dưới quyền root nếu người dùng của bạn có thể không có quyền truy cập vào tệp)
$ 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
Nếu bạn không bao gồm -xdev
find
các tìm kiếm mọi thứ trên các phân vùng khác, như /proc
và /sys
, có xu hướng tràn ngập màn hình của bạn với các lỗi, đặc biệt là nếu bạn không root. (Lỗi có thể được ẩn bằng cách nối thêm 2> /dev/null
vào cuối lệnh find (cần xóa bình luận))
Nếu bạn có nhiều phân vùng và bạn không biết tệp nào được bật, bạn có thể nhận danh sách với lsblk
(trên các HĐH dựa trên Linux, phân tích cú pháp df
đầu ra là một tùy chọn khác) và đưa vào đó tìm: (root lại nếu bạn không biết nếu bạn có thể truy cập tập tin)
$ 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.
(Điều này hơi mong manh nếu bất kỳ điểm gắn kết nào của bạn có khoảng trắng trong) ( df
tham số có thể cần điều chỉnh. -P tạo GNUdf
cung cấp đầu ra POSIX tiêu chuẩn. Các phiên bản khác có thể có các tham số khác hoặc cần bỏ qua. Đọc trang man của bạn)
Không grep -F
bao gồm những thứ khác được trả lại, như phân vùng trao đổi.
Trong phiên bản không phải GNU, awk tìm các thiết bị có giá trị bắt đầu bằng /dev
để lấy các hệ thống tệp thực và sau đó in trường cuối cùng (điểm gắn kết) từ df
đầu ra.
Điều này cũng giả sử một lớp vỏ giống như bourne ( ksh
và bash
sẽ hoạt động. Nếu bạn đang sử dụng một csh
biến thể, hãy khởi động một lớp vỏ có thể viết được trước khi bạn thử điều này)
Book1
, và nó nằm trong một thư mục bạn có thể đọc, thìfind / -iname book1
sẽ tìm thấy nó. Bạn có chắc chắn nó thực sựBook1
, và khôngBook1.xyz
?