Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Cách sử dụng Lệnh định vị Linux, Với các ví dụ

Đây là một công cụ khác cho hộp công cụ tìm kiếm tệp Linux của bạn - định vị yêu cầu. Điều này giải thích cách sử dụng nó.

Định vị lệnh được thực hiện đặc biệt để tìm các tệp và thư mục theo tên của chúng. Nó dễ sử dụng và có thể tìm kiếm tệp bằng các mẫu. Điều này rất hữu ích nếu bạn đang tìm kiếm các tệp có loại / phần mở rộng tệp cụ thể.

Đang cài đặt định vị

xác định vị trí có thể không được cài đặt theo mặc định trên hệ thống của bạn.

Để cài đặt trên các bản phân phối dựa trên Debian / Ubuntu, hãy chạy:

sudo apt install mlocate

Hoặc trên Redhat / CentOS / Fedora:

sudo yum install mlocate

Linux định vị Cú pháp lệnh

Định vị lệnh là nhanh chóng. Đó là bởi vì thay vì tìm kiếm hệ thống tệp trực tiếp, nó tìm kiếm cơ sở dữ liệu gồm các tệp được cập nhật định kỳ. Điều này làm cho việc tìm kiếm nhanh hơn nhiều.

Tuy nhiên, điều đó có nghĩa là nếu một tệp đã được di chuyển, đổi tên hoặc xóa kể từ lần cuối cùng cơ sở dữ liệu được làm mới, nó sẽ vẫn xuất hiện trong kết quả.

Theo mặc định, cơ sở dữ liệu được định vị sử dụng để tìm tệp sẽ được lên lịch cập nhật hàng ngày, nhưng có thể kích hoạt cập nhật thủ công nếu bạn đã sắp xếp lại các tệp của mình và muốn thực hiện tìm kiếm trên bản ghi cập nhật.

Cập nhật Cơ sở dữ liệu

Để cập nhật cơ sở dữ liệu được định vị sử dụng để tìm tệp, hãy chạy:

sudo updatedb

Định vị tệp

Cú pháp để tìm tệp bằng định vị như sau:

locate OPTIONS PATTERN

Lưu ý rằng:

  • TÙY CHỌN là tùy chọn và có thể được cung cấp từ bảng bên dưới để thay đổi hành vi mặc định của định vị lệnh
  • MẪU tên tệp mẫu có phải khớp để được coi là khớp với tìm kiếm không
  • Kết quả cho các tệp phù hợp sẽ từ toàn bộ hệ thống tệp theo mặc định - không chỉ là thư mục làm việc hiện tại
  • Nếu không có cơ sở dữ liệu nào được tạo cho định vị để sử dụng, bạn có thể được nhắc tạo một lệnh
  • Vị trí định vị lệnh sẽ trả về mã trạng thái là 0 nếu một tệp phù hợp được tìm thấy và 1 nếu không tìm thấy tệp nào hoặc xảy ra lỗi.

Tùy chọn lệnh

Dưới đây là một số tùy chọn thường được sử dụng cho định vị lệnh, trực tiếp từ tài liệu chính thức:

-b Chỉ khớp tên cơ sở với các mẫu được chỉ định.
-c Thay vì viết tên tệp trên đầu ra chuẩn, hãy chỉ viết số lượng mục nhập phù hợp.
-e Chỉ in các mục nhập đề cập đến các tệp hiện có tại thời điểm định vị được chạy.
-i Bỏ qua phân biệt chữ hoa chữ thường khi đối sánh các mẫu.
-l Thoát thành công sau khi tìm thấy LIMIT mục nhập. Nếu tùy chọn –count được chỉ định, số lượng kết quả cũng bị giới hạn ở LIMIT.
-P Khi kiểm tra xem tệp có tồn tại hay không (nếu tùy chọn – tồn tại được chỉ định), không đi theo các liên kết ký hiệu theo sau. Điều này khiến các liên kết tượng trưng bị hỏng được báo cáo giống như các tệp khác.
-q Không viết thông báo về các lỗi gặp phải khi đọc và xử lý cơ sở dữ liệu.
-r Tìm kiếm một REGEXP regexp cơ bản. Không cho phép MẪU nếu tùy chọn này được sử dụng, nhưng tùy chọn này có thể được chỉ định nhiều lần.
–regex Diễn giải tất cả MẪU dưới dạng regexps mở rộng.

Để xem danh sách đầy đủ các tùy chọn, bạn có thể xem hướng dẫn sử dụng cho lệnh định vị bằng cách chạy:

man locate

xác định vị trí Ví dụ về lệnh

Cách sử dụng cơ bản nhất cho định vị chức năng là tìm một tệp phù hợp với một tên đã cho:

locate filename

Danh sách các đường dẫn tệp cho từng tệp phù hợp trong hệ thống tệp sẽ được trả về.

Như đã giải thích ở trên, bản thân hệ thống tệp không được tìm kiếm bằng định vị - nhưng cơ sở dữ liệu lập chỉ mục hệ thống tệp và được cập nhật định kỳ được tìm kiếm. Điều này giúp mọi thứ nhanh chóng nhưng có thể gây ra sự cố nếu bạn vừa hoàn thành việc di chuyển một loạt tệp và cơ sở dữ liệu chưa được cập nhật.

-e tùy chọn sẽ buộc định vị để kiểm tra xem tệp có còn tồn tại trong hệ thống tệp hay không trước khi thêm tệp đó vào danh sách kết quả:

locate -e filename

Điều này không giải quyết vấn đề các tệp mới được tạo hoặc di chuyển không có trong kết quả (hoặc xuất hiện ở vị trí cũ của chúng) nhưng giải quyết vấn đề tệp bị xóa xuất hiện trong kết quả.

Các mẫu có thể được cung cấp để bạn có thể dễ dàng tìm kiếm theo đuôi tệp:

locate *.mp3

Ví dụ trên sẽ trả về tất cả các tệp mp3 được tìm thấy trong cơ sở dữ liệu.

Định vị lệnh có phân biệt chữ hoa chữ thường theo mặc định - điều này có thể được ghi đè bằng cách sử dụng -i tùy chọn:

locate -i FILENAME

Bạn cũng có thể đếm số lượng tệp phù hợp bằng cách sử dụng -c tùy chọn:

locate -c filename