1. Trang chủ
  2. » Công Nghệ Thông Tin

Hướng dẫn sử dụng lệnh find trong Linux docx

5 385 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 171,03 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các công cụ như grep, awk, find và locate sẽ giúp bạn dễ dàng hơn trong việc tìm kiếm các tập tin, tìm kiếm văn bản trong file hoặc thay thế một từ nào đó.. Lệnh này sẽ cung cấp cho bạn

Trang 1

Hướng dẫn sử dụng lệnh find trong Linux

Với giao diện dòng lệnh, Linux thực sự là một công cụ rất mạnh mẽ và

linh hoạt Các công cụ như grep, awk, find và locate sẽ giúp bạn dễ dàng hơn trong việc tìm kiếm các tập tin, tìm kiếm văn bản trong file hoặc thay thế một từ nào đó Bài viết sau sẽ hướng dẫn các bạn cách sử dụng lệnh find

để cải thiện quá trình tìm kiếm bằng dòng lệnh

Về hình thức, lệnh find được sử dụng một cách đơn giản như sau:

Trang 2

Lệnh này sẽ cung cấp cho bạn một danh sách tất cả các tập tin và thư mục trong đường dẫn hiện hành Lưu ý rằng truy vấn này sẽ hiển thị cả những tập tin trong cả thư mục con, vì vậy danh sách này sẽ rất dài nếu bạn có nhiều

file trong đó Để dừng sự hiển thị này bạn hãy ấn phím Ctrl + C

Phương thức trên là cách đơn giản nhất để sử dụng lệnh find Bằng cách kết hợp với một số các tham số và biểu thức thông thường khác, bạn có thể làm cho việc tìm kiếm tập tin được thông minh hơn Ví dụ, nếu bạn muốn tìm

kiếm tất cả tập tin có tên bắt đầu bằng “image”, hãy làm như sau:

Ở đây chúng ta sử dụng tham số -name trong lệnh find để tìm kiếm tất cả

tập tin có tên bắt đầu bằng image Lưu ý rằng trường hợp này kết quả sẽ

phân biệt chữ hoa với chữ thường Để có kết quả không phân biệt hoa –

thường bạn có thể dùng lệnh “# find -iname image\*”

Bạn cũng có thể sử dụng ký tự đại diện cho việc tìm kiếm các tập tin với phần mở rộng nhất định Để tìm kiếm toàn bộ nội dung file trong thư mục

hiện hành và cả thư mục con có phần mở rộng php, bạn sử dụng lệnh sau:

Bạn cũng có thể thực hiện việc tìm kiếm theo hướng ngược lại Tức là tìm

tất cả những tập tin không có phần mở rộng php như sau:

# find \! -name “*.php”

Trang 3

Lưu ý: dấu chấm than (!) được dùng để thực thi việc tìm kiếm theo chiều

ngược lại, điều này có thể được dùng cho toàn bộ những tùy chọn khác

Một trong những vấn đề thường gặp phải khi dùng lệnh find là theo mặc định nó sẽ tìm cả những thư mục con Trong khi đó nhiều khi bạn chỉ cần tìm trong thư mục hiện hành Để làm được điều này bạn cần sử dụng đến tùy

chọn -maxdepth Với tùy chọn này, lệnh find sẽ được “thông báo” rằng có

nhiều cấp độ trong thư mục con nên nó cần “xem xét” khi tìm kiếm Vì vậy

nếu bạn chỉ muốn find tìm trong thư mục hiện hành, chỉ cần thêm chỉ số 0 vào sau -maxdepth:

(Dòng lệnh trên sẽ tìm tất cả file trong thư mục hiện tại không có phần mở rộng là php)

Nếu muốn tìm kiếm sâu hơn vào cả thư mục con, bạn chỉ cần tăng chỉ số cho -maxdepth lên thành 1,2 tùy theo các cấp của thư mục bạn có Tương tự,

bạn cũng có thể sử dụng lệnh -mindepth để thiết lập giới hạn thấp nhất cho

cấp của thư mục được tìm kiếm Bằng cách kết hợp hai tùy chọn -maxdepth

và -mindepth một cách linh hoạt bạn sẽ có được nhiều kết quả theo nhiều nhu cầu của mình

Tìm kiếm với các tiêu chí khác

Nếu như ở phần trên chúng ta đã biết cách sử dụng tùy chọn -name để tìm

kiếm theo tên tập tin Tương tự như vậy, trong trường hợp bạn muốn tìm

Trang 4

những kết quả theo tên người dùng thì có thể thêm tùy chọn -user Ví dụ bạn

muốn hiển thị những tập tin có phần mở rộng php của user có tên Linux, hãy làm như sau:

Khắc phục lỗi thường gặp

Thông thường bạn có thể sử dụng lệnh find trong shell scripts Bản thân lệnh này sẽ ném ra vài lỗi Tuy nhiên, khi bạn chạy nó như một user bình thường các lỗi nếu gặp phải sẽ được bật lên dạng pop-up Ví dụ, nếu bạn chạy lệnh tìm kiếm trong thư mục root nhưng không có quyền root sẽ gặp lỗi kiểu

Permission denied Điều này sẽ gây khó chịu khi sử dụng lệnh trong một

kịch bản Mặc dù bản thân lệnh find không thể tự khắc phục lỗi này nhưng chúng ta vẫn có thể giải quyết dễ dàng bằng cách chuyển hướng toàn bộ lỗi

về /dev/null như sau:

# find / -name StewieGriffin\*

/root: Permission denied

/home/peterg: Permission denied

/home/stewie/StewieGriffin-resume.doc

Sẽ được chuyển thành

# find / -name StewieGriffin\* 2>/dev/null

/home/stewie/StewieGriffin-resume.doc

Bây giờ bạn có thể yên tâm sử dụng lệnh find trong các script của mình mà không cần lo lắng đến các lỗi ở đầu ra

Trang 5

Sử dụng lệnh find cho người lười biếng

Nếu bạn là một người như vậy, hãy kết hợp các lệnh tiện ích để có được kết quả như ý muốn Chẳng hạn như bạn muốn tìm kiếm tập tin có chứa từ

“Quantrimang” bạn chỉ cần chạy lệnh # find | grep Quantrimang Lệnh

này tương tự như # find -name web Tương tự, để kết quả trả về không phân biệt chữ hoa – chữ thường bạn chỉ cần làm như sau: # find | grep -i

web Ngoài ra bạn cũng có thể kết hợp lệnh find với sed hoặc awk

Cái hay của các dòng lệnh trong Linux hoặc UNIX ở chỗ chúng là những công cụ thực sự mạnh mẽ, bạn chỉ cần bỏ ra một chút thời gian nhỏ là đã có thể làm chủ được chúng Chúc các bạn thành công!

Ngày đăng: 13/08/2014, 12:20

TỪ KHÓA LIÊN QUAN