Cách tìm tệp theo tên trong Linux

Tìm tệp của bạn dễ dàng từ dòng lệnh trong Linux

Người dùng thường cố gắng tìm tệp bằng GUI. Tuy nhiên, đôi khi việc tìm một tệp riêng lẻ trong đống tệp khổng lồ trên hệ thống của bạn sẽ trở thành một công việc rất tẻ nhạt. Tìm nó theo cách thông thường có thể là một công việc tốn nhiều thời gian. Để thực hiện công việc này dễ dàng hơn, Linux cung cấp một số lệnh nhất định để thực hiện công việc này cho bạn.

tìm thấy là một lệnh phổ biến được sử dụng trong hệ thống Linux có thể giúp bạn tìm kiếm các tệp khác nhau dựa trên tên, loại, tiện ích mở rộng, quyền, chủ sở hữu, v.v.

Trong hướng dẫn này, chúng tôi sẽ tập trung vào việc tìm các tệp theo tên. Chúng ta sẽ xem xét các đối số khác nhau có thể được sử dụng với tìm thấy yêu cầu. Chúng ta cũng sẽ tìm hiểu về định vị cũng là một cách nhanh hơn để tìm kiếm các tệp theo tên.

Cú pháp cho tìm thấy yêu cầu

Sử dụng tìm thấy ra lệnh theo cách thích hợp có thể làm cho nhiệm vụ của bạn dễ dàng hơn. Việc tìm kiếm các tệp thuộc loại hoặc phần mở rộng cụ thể hoặc tìm kiếm theo tên sẽ có thể thực hiện được nếu bạn hiểu rõ cú pháp chung của lệnh này.

Cú pháp chung cho tìm thấy lệnh như sau.

tìm [search_path] [biểu thức] [tùy chọn] [find_what]

Tôi đã cố gắng đơn giản hóa cú pháp của tìm thấy lệnh để hiểu lệnh tốt hơn.

Chúng ta hãy xem xét từng thuộc tính của cú pháp để có được ý tưởng về tầm quan trọng của từng thuộc tính đó.

Search_Path: Đây là đường dẫn mà chúng ta chỉ định đường dẫn từ nơi chúng ta muốn hệ thống bắt đầu tìm kiếm tệp. Trong ngắn hạn, thư mục bắt đầu để bắt đầu tìm kiếm được chỉ định.

Biểu hiện: Bạn có thể chỉ định các kiểu tìm kiếm cho tệp cụ thể mà bạn đang tìm kiếm.

Tùy chọn: Bạn có thể sử dụng các tùy chọn có sẵn được sử dụng với tìm thấy lệnh trong không gian này.

tìm_ cái gì: Trong thuộc tính này, nhập tên hoặc một phần tên của tệp cần tìm kiếm.

Hãy để chúng tôi minh họa lệnh này bằng một ví dụ.

find / home / gaurav / workspace -name "source.c"

Trong lệnh này, tôi đang sử dụng tìm thấy lệnh để tìm kiếm tệp “source.c”. Tôi đã yêu cầu cụ thể tìm kiếm trong đường dẫn ‘/ home / gaurav / workspace’. Sử dụng -Tên cho phép tôi tìm kiếm tệp được chỉ định bởi ‘source.c’.

Đây là minh chứng đơn giản nhất cho việc sử dụng tìm thấy yêu cầu.

Tìm kiếm tệp trong thư mục hiện tại

Sử dụng tìm thấy ở dạng đơn giản nhất của nó là tìm kiếm các tệp của bạn trong thư mục làm việc hiện tại của bạn.

tìm thấy .

Lệnh này sẽ hiển thị tất cả các tệp trong thư mục làm việc hiện tại của bạn. Đây là ‘.‘Có nghĩa là‘ thư mục làm việc hiện tại ’. Sau đây là kết quả từ thư mục làm việc hiện tại của tôi. Tất cả các tệp có trong thư mục này được liệt kê mà không có bất kỳ bộ lọc nào

Đầu ra:

. ./context_log.policy ./snap ./snap/couchdb ./snap/couchdb/current ./snap/eclipse ./snap/eclipse/current ./snap/vim-editor ./snap/vim-editor/current ./ snap / vim-editor / common ./snap/vim-editor/1 ./snap/htop ./snap/htop/current ./snap/htop/common ./snap/htop/common/.local ./snap/htop /common/.local/lib ./snap/htop/common/.local/lib/locale ./snap/htop/common/.local/lib/locale/en_IN.UTF-8 ./snap/htop/common/. local / lib / locale / en_IN.UTF-8 / LC_CTYPE

Để tìm kiếm một tệp có tên gần đúng được biết, hãy sử dụng tìm thấy lệnh như hình dưới đây.

tìm thấy . -name [string_from_filename \ *]

Thí dụ:

tìm thấy . -tên ngữ cảnh \ *

Lệnh này tìm kiếm các tệp có chứa chuỗi ‘ngữ cảnh’ trong đó.

Đầu ra:

./context_log.policy ./context.xml ./context_preview.c

Tất cả các tệp trong thư mục hiện tại được liệt kê có chứa chuỗi ‘ngữ cảnh’ trong đó.

Bây giờ vấn đề phát sinh với lệnh này khi bạn cố gắng tự do về phân biệt chữ hoa chữ thường trong khi nhập tên tệp hoặc chuỗi gần đúng.

Linux khá thận trọng về độ phân biệt chữ hoa chữ thường và do đó, rất có khả năng tìm kiếm của bạn không thành công. Tôi sẽ không nhận được đầu ra cho lệnh find nếu tôi sử dụng chuỗi là ‘CONTEXT’ thay vì ‘context’. Ngay cả khi một chữ cái duy nhất trong tên tệp nằm trong trường hợp khác với chữ cái của tên tệp gốc thì việc tìm kiếm sẽ không thành công.

Nhưng không cần phải lo lắng về nó. Bạn chỉ cần thay thế -Tên tùy chọn với -iname. Điều này cho phép bạn tìm kiếm các tệp bất kể trường hợp tên của chúng là gì. Chỉ cần thực hiện thay đổi đơn giản này trong lệnh của bạn và bạn sẽ ổn.

tìm thấy . -iname CONT \ *

Đầu ra sẽ giống nhau, ngay cả khi tôi đã sử dụng chuỗi trong chữ hoa.

./context_log.policy ./context.xml ./context_preview.c

Tìm kiếm tệp trong các thư mục khác nhau

Bạn có thể dễ dàng tìm kiếm các tệp trong bất kỳ thư mục nào trên hệ thống Linux bất kể thư mục bạn đang làm việc.

tìm [directory_path] -iname [tên_tệp_chỉ_tính]

Thí dụ:

find / home / gaurav / tomcat -iname Ath.html

Ở đây, tôi đã tìm kiếm một tệp cụ thể là ‘Ath.html’ chứ không phải các tệp tương tự với chuỗi này. Vì vậy, đầu ra sẽ chỉ là tệp cụ thể như đã đề cập ở trên.

/home/gaurav/tomcat/ath.html

Bây giờ, giả sử chúng ta không biết tên tệp hoàn chỉnh mà chỉ biết chuỗi của tên tệp này. Sau đó, chúng ta có thể tìm kiếm các tập tin theo cách sau.

find / home / gaurav / tomcat -iname sports \ *

Lệnh này sẽ tìm kiếm tất cả các tệp bao gồm chuỗi ‘điền kinh’ trong đó ở đầu. Tôi đã sử dụng -iname ở đây, vì vậy tôi không cần phải lo lắng về độ phân biệt chữ hoa chữ thường.

Đầu ra:

/home/gaurav/tomcat/ATHENIAN_ART.html /home/gaurav/tomcat/ath_things.html /home/gaurav/tomcat/ath.html /home/gaurav/tomcat/ATHENIAN_ART.pdf/home/gaurav/tomcat/ATHHHHhow.html

Bạn cũng có thể sử dụng lệnh để tìm kiếm nhiều tệp kết thúc bằng phần mở rộng tương tự trong tên của chúng.

Thí dụ:

find / home / gaurav / tomcat -iname "* .c"

Lệnh sẽ tìm kiếm tất cả các tệp trong thư mục được chỉ định có chứa .c làm phần mở rộng trong tên tệp của chúng.

Đầu ra:

/home/gaurav/tomcat/stiil.c /home/gaurav/tomcat/project/temp.c /home/gaurav/tomcat/copy.c /home/gaurav/tomcat/gy.c

Chúng tôi đã tìm hiểu về tìm thấy lệnh để tìm kiếm các tệp được chỉ định bởi tên tệp. Bây giờ, hãy cùng chúng tôi khám phá thêm một lệnh nhanh hơn lệnh thông thường tìm thấy yêu cầu.

định vị tổng quan về lệnh

Có một lệnh nữa để tìm kiếm các tệp trên hệ thống của bạn nhanh hơn lệnh tìm thấy yêu cầu. Đó là định vị yêu cầu. Lệnh này không được cài đặt sẵn trên các bản phân phối Linux. Bạn có thể sử dụng các bước sau để tải xuống và cài đặt định vị gói lệnh vào hệ thống của bạn.

Đối với hệ thống Ubuntu và Debian, sử dụng:

sudo apt update sudo apt install mlocate

Đối với hệ thống Cent Os và Fedora, sử dụng:

sudo yum cài đặt mlocate

Lệnh định vị tìm kiếm tệp theo mẫu đã cho trong đầu vào. định vị sử dụng tệp cơ sở dữ liệu để tìm kiếm tệp, tệp cơ sở dữ liệu này được tạo bởi cập nhậtb yêu cầu.

sudo đã cập nhậtb

Thời gian cần thiết để cập nhật tệp cơ sở dữ liệu này có thể khác nhau ở mỗi người dùng tùy thuộc vào các tệp trên hệ thống của bạn.

Sử dụng định vị yêu cầu

Bạn có thể dùng định vị lệnh theo cách sau. Đảm bảo cập nhật tệp cơ sở dữ liệu của bạn bằng lệnh sudo đã cập nhậtb.

Cú pháp:

xác định vị trí [filename_or_part_of_filename]

Lệnh này sẽ bắt đầu tìm kiếm từ thư mục gốc. Nó sẽ trả về danh sách tất cả các tệp trên hệ thống có chứa tên tệp hoặc một phần của tên tệp như được chỉ định trong lệnh.

Thí dụ:

xác định vị trí copy.c

Đầu ra:

/home/gaurav/Downloads/git-2.23.0/copy.c /snap/core/9804/usr/lib/python3.5/__pycache__/copy.cpython-35.pyc / snap / core / 9993 / usr / lib /python3.5/__pycache__/copy.cpython-35.pyc /snap/core18/1880/usr/lib/python3.6/__pycache__/copy.cpython-36.pyc / snap / core18/1885 / usr / lib / python3 .6 / __ pycache __ / copy.cpython-36.pyc /snap/core20/634/usr/lib/python3.8/__pycache__/copy.cpython-38.pyc/usr/lib/python3.5/__pycache__/copy.cpython -35.pyc /usr/lib/python3.6/__pycache__/copy.cpython-36.pyc /usr/share/icons/MacBuntu-OS/apps/128/copy.com.png

Dòng được đánh dấu cho thấy rằng tệp chính xác ‘copy.c’ đã được tìm thấy. Cùng với kết quả này, một số tệp khác cũng được hiển thị có chứa ‘copy.c’ như một phần của tên tệp của chúng.

Để tránh sự lộn xộn của các tệp không mong muốn khác và chỉ tìm thấy tệp mong muốn, bạn có thể sử dụng lệnh định vị theo cách sau.

định vị -b '\ filename'

Thí dụ:

xác định vị trí -b '\ copy.c'

Đầu ra:

/home/gaurav/Downloads/git-2.23.0/copy.c

Tệp cụ thể được đề cập trong tiêu chí tìm kiếm được liệt kê cùng với đường dẫn của thư mục nơi nó nằm.

Sử dụng định vị Lệnh có vẻ hơi phức tạp nhưng là một phương pháp nhanh hơn để tìm kiếm tệp khi bạn không biết chính xác vị trí của tệp đó. Việc truy xuất tệp trở nên cực nhanh khi bạn đã cập nhật tệp cơ sở dữ liệu mà lệnh định vị sử dụng.

Sự kết luận

Trong hướng dẫn ngắn này, chúng ta đã học về hai lệnh quan trọng, tìm thấyđịnh vị. Giờ đây, bạn có thể dễ dàng tìm kiếm các tệp trên hệ thống của mình mà không bị lạc trong chồng tệp. Sử dụng các lệnh này chắc chắn sẽ tiết kiệm thời gian và hiệu quả cho nhiệm vụ tìm kiếm tệp của bạn.