Tìm tập tin trong Linux Tainghetrothinh

Nếu không biết cách, việc tìm tập tin trong Linux có thể sẽ khá khó khăn. Ở đây, cách làm tốt nhất chính là dùng một vài lệnh terminal khác nhau. Chúng mạnh mẽ hơn nhiều so với tính năng tìm kiếm đơn giản trên những hệ điều hành khác và khi biết cách dùng thuần thục, bạn sẽ có được khả năng kiểm soát triệt để những tập tin của mình.

những bước

Phương pháp số 1 Dùng lệnh “find”

1Tìm tập tin bằng tên. Đây là phương pháp tìm kiếm cơ bản nhất mà bạn có thể thực hiện bằng lệnh find. Lệnh dưới đây sẽ tìm tệp trong thư mục hiện tại và mọi thư mục con của nó. find -iname “tên tệp”Dùng -iname thay vì -name để bỏ qua yếu tố viết hoa và viết thường trong truy vấn của bạn. Lệnh -name có xét đến yếu tố này.2Thiết lập để tìm kiếm được bắt đầu từ thư mục root. Để tìm kiếm trên toàn bộ máy tính, bạn có thể thêm dấu bổ trợ / vào truy vấn. Nhờ đó, lệnh find sẽ nhận biết và tiến hành tìm kiếm mọi thư mục từ thư mục root. find / -iname “tên tệp”Bạn có thể bắt đầu tìm kiếm ở một thư mục cụ thể bằng cách thay dấu / bằng đường dẫn, chẳng hạn như /home/pat.Bạn có thể dùng . thay cho / để chỉ tiến hành tìm kiếm trên thư mục hiện tại và những thư mục con của nó. 3dùng ký tự đại diện .* để tìm mọi tệp chứa những phần của truy vấn. Ký tự * này có thể sẽ hữu dụng trong việc tìm kiếm những mục mà bạn không biết tên đầy đủ hoặc khi bạn muốn tìm mọi tệp có phần đuôi nào đó. find /home/pat -iname “*.conf”Lệnh trên sẽ trả về mọi tệp .conf trong thư mục người dùng (và những thư mục con) của Pat.Bạn cũng có thể dùng nó để tìm mọi tập tin có chứa một phần tên tệp. Chẳng hạn như trong trường hợp có rất nhiều tài liệu liên quan đến TaiNgheTroThinh, bạn có thể tìm toàn bộ bằng cách gõ “*wiki*”.4Đơn giản hóa kết quả trả về. Có thể sẽ rất khó để sàng lọc khi có quá nhiều kết quả được trả về. Lúc này, bạn hãy dùng ký tự | và gửi kết quả tìm kiếm đến chương trình sàng lọc “less”. Khi đó, bạn có thể duyệt qua và lọc kết quả dễ dàng hơn rất nhiều. find /home/pat -iname “*.conf”| less 5Tìm loại kết quả tìm kiếm cụ thể. Bạn có thể dùng những ký tự bổ trợ để nhận về loại kết quả tìm kiếm nhất định. Bạn có thể tìm tệp thông thường (f), thư mục (d), liên kết biểu tượng (l), thiết bị điều khiển (c), và thiết bị khối (b) với ký tự bổ trợ phù hợp. find / -type f -iname “tên-tệp”6Lọc kết quả tìm kiếm bằng kích thước. Khi có nhiều tệp trùng tên và biết kích thước tệp mà bạn đang tìm kiếm, bạn có thể lọc kết quả tìm kiếm theo tiêu chí này. find / -size +50M -iname “tên tệp”Lệnh trên sẽ trả về những tệp từ 50 MB trở lên. Bạn có thể dùng những ký tự + hoặc – để tìm tệp có kích thước lớn hay nhỏ hơn. Khi không dùng những ký tự này, lệnh tìm kiếm sẽ trả về tệp có kích thước đúng bằng kích thước yêu cầuBạn có thể lọc theo byte (c), kilobyte (k), megabyte (M), gigabyte (G), hoặc khối 512-byte (b). Lưu ý rằng phần này có phân biệt hoa thường.7Dùng toán tử logic để kết hợp những kiểu tìm kiếm sàng lọc. Bạn có thể dùng những toán tử -and (và), -or (hoặc) và -not (không) để kết hợp những kiểu tìm kiếm với nhau. find /hình_du_lịch -type f -size +200k -not -iname “*2015*”Lệnh trên sẽ tìm những tệp nằm trong thư mục “hình_du_lịch” có kích thước lớn hơn 200 kilobyte và có tên không chứa “2015”.8Tìm tệp theo chủ sở hữu hoặc quyền truy cập. Nếu đang tìm tập tin của một ai đó hoặc tập tin với quyền truy cập nhất định, bạn có thể thu nhỏ phạm vi tìm kiếm. find / -user pat -iname “tên tệp” find / -group users -iname “tên tệp” find / -perm 777 -iname “tên tệp”những ví dụ trên lần lượt truy vấn với người dùng, nhóm và quyền truy cập nhất định. Bạn cũng có thể bỏ qua tên tệp để nhận về mọi tệp có loại được nêu. Chẳng hạn như find / -perm 777 sẽ trả về mọi tệp có quyền truy cập 777 (không giới hạn).9Kết hợp những lệnh để tiến hành xử lý sau khi tìm được tập tin. Bạn có thể kết hợp lệnh find với những lệnh khác để thực thi những lệnh này trên những tệp được trả về. Phân tách lệnh find và lệnh thứ hai bằng -exec và kết dòng lệnh bằng dấu {} \;find . -type f -perm 777 -exec chmod 755{}\;Tổ hợp lệnh trên sẽ tìm mọi tệp có quyền truy cập 777 trong thư mục hiện tại (và những thư mục con) rồi dùng lệnh chmod để đổi quyền truy cập đó sang 755

Phương pháp số 2 Dùng lệnh “locate”

1Cài đặt tính năng .locate. Nhìn chung, lệnh locate chạy nhanh hơn lệnh find nhờ làm việc trên cơ sở dữ liệu cấu trúc tập tin của bạn. Không phải bản phân phối Linux nào cũng có sẵn tính năng này. Do đó, bạn cần những lệnh sau để thử cài đặt chúng: Gõ sudo apt-get update và nhấn ↵ Enter.Bạn có thể cài trên Debian và Ubuntu bằng cách: Gõ sudo apt-get install mlocate và nhấn ↵ Enter. Nếu locate đã được cài sẵn, thông điệp sau sẽ xuất hiện: mlocate is already the newest version.Trong Linux Arch, dùng trình quản lý gói pacman: pacman -Syu mlocateVới Gentoo, dùng emerge: emerge mlocate2Cập nhật cơ sở dữ liệu .locatecủa bạn. Lệnh locate sẽ không thể tìm được gì cho đến khi cơ sở dữ liệu của nó được dựng và cập nhật. Dù tác vụ này được chạy tự động mỗi ngày nhưng bạn vẫn tự thực hiện được và bạn sẽ phải làm vậy để dùng được locate ngay.Gõ sudo updatedb và nhấn ↵ Enter.3Dùng .locateđể thực thi những truy vấn đơn giản. Dù nhanh nhưng lệnh locate không có nhiều tùy chọn như lệnh find. Việc thực thi lệnh tìm kiếm cơ bản ở lệnh này cũng rất giống với tìm kiếm cơ bản ở lệnh find. locate -i “*.jpg”Lệnh trên tìm tệp có đuôi .jpg trên toàn bộ hệ thống. Ký tự đại diện * giữ vai trò tương tự như trong lệnh find.Giống như lệnh find, -i không xét đến yếu tố viết hoa, viết thường trong truy vấn của bạn.4Giới hạn kết quả tìm kiếm. Nếu tìm kiếm trả về quá nhiều kết quả, bạn có thể thu hẹp chúng bằng cách dùng tùy chọn -n, tiếp đến là số những kết quả bạn muốn hiển thị. locate -n 20 -i “*.jpg”Chỉ 20 kết quả tìm kiếm đầu tiên phù hợp với truy vấn sẽ được hiển thị. Bạn cũng có thể dùng dấu | gửi kết quả đến less để duyệt dễ dàng hơn

Phương pháp số 3 Tìm tập tin có chứa đoạn văn bản nhất định< /p>

1Dùng lệnh .grep để tìm tập tin có chứa nội dung văn bản nhất định. Để tìm tệp có chứa cụm từ hay chuỗi ký tự nào đó, bạn có thể dùng lệnh grep. Lệnh grep cơ bản có định dạng như sau: grep -r -i “search query” /path/to/directory/ -r xác lập tìm kiếm “recursive” (đệ quy), nghĩa là mọi tệp có chứa từ khóa trong thư mục hiện hành và mọi thư mục con của nó sẽ được tìm kiếm.-i cho biết truy vấn trên không phân biệt viết hoa và viết thường. Nếu muốn phân biệt hoa thường, bạn hãy bỏ qua toán tử -i.2Bỏ bớt phần nội dung văn bản. Khi thực thi lệnh tìm kiếm grep có cấu trúc tương tự như trên, bạn sẽ nhận được kết quả trả về bao gồm tên tệp cùng phần văn bản được tô sáng trùng khớp với nội dung truy vấn. Bạn có thể ẩn đoạn văn bản trùng khớp này, chỉ hiển thị tên và đường dẫn của tệp bằng cách thêm nội dung sau vào lệnh: grep -r -i “search query” /path/to/directory/ | cut -d: -f1 3Ẩn thông báo lỗi. Lệnh grep sẽ trả lỗi về khi cố truy cập vào thư mục nào đó mà không có quyền truy cập phù hợp hoặc tiến hành tìm kiếm thư mục trống. Bạn có thể gửi thông báo lỗi đến /dev/null để ẩn tại đầu ra.grep -r -i “search query” /path/to/directory/ 2>/dev/null