Dưới đây là một số ví dụ mà chúng ta có thể tận dụng khi sử dụng Tìm kiếm, một lệnh để tìm kiếm tệp hoặc thư mục.
Để nhận được sự trợ giúp của lệnh chạy:
man find
để thoát khỏi thủ công, chỉ cần bấm phím [NS] (có giá trị cho bất kỳ hướng dẫn sử dụng).
Trong các ví dụ sau, dấu chấm (.) Sau khi tìm thấy (find.) Có nghĩa là chúng ta đang tìm kiếm trong thư mục được chỉ ra bởi dấu nhắc. Nó có thể được thay thế cho bất kỳ đường dẫn hợp lệ nào như / home /.
Ejemplos:
Chỉ cần tìm kiếm các tệp có mẫu.
find . -type f -name "*.deb"
tìm và sao chép vào / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;
Tìm tệp Thumbs.db và xóa chúng.
find . -type f -name "Thumbs.db" -exec rm -f {} \;
Tạo một tệp văn bản thuần túy với các tệp md5 trong thư mục.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt
Xóa các thư mục .svn khó chịu.
find | grep "\.svn$" | xargs rm -fr
Thay thế một văn bản bằng một văn bản khác.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php
Tìm tệp được cập nhật đến một ngày trước.
find /var/log/[a-z]* \*.sql -mtime +1
Để tạo tệp md5sums của gói DEB:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums
xóa tất cả các tệp khác ngoài .txt (rõ ràng .txt có thể là bất kỳ thứ gì)
tìm thấy. ! -name "* .txt" -exec rm {} \;
tìm kiếm không có kết quả phù hợp phân biệt chữ hoa chữ thường:
tìm thấy. -iname «* foobar *»
Lưu ý: không thể chạy lệnh -exec với tham số -iname.
Tuyệt vời 😉 lệnh này nên bắt buộc phải biết, trước khi tôi sợ hãi bởi các tùy chọn tồn tại trong 'con người' để có thể thực hiện tìm kiếm, nhưng cho nó cơ hội, tôi có thể thấy nó mạnh mẽ như thế nào khi tìm kiếm những gì tôi đã quên trên ổ cứng của tôi 😐
Find chắc chắn hữu ích, đặc biệt là để xử lý các tên tệp bao gồm dấu cách và các ký tự bất thường khác. Ví dụ, tôi nhớ một lần rằng không có cách nào để nén một tập hợp các thư mục, cho đến khi tôi sử dụng find với xargs (nhanh hơn nhiều so với -exec) và vấn đề đã được giải quyết.
Một trong những cách sử dụng ưa thích khác của tôi đối với lệnh find là thay đổi quyền một cách đệ quy:
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
Thật thú vị ^ _ ^
Biểu tượng Chakra trông tuyệt làm sao hahahahahaha 😀
Mageia mất tích 🙂
Đúng vậy 😀
Ngay bây giờ tôi đang dựa trên điều này hehehehe. Cảm ơn 🙂
Và một cho bản phân phối của tôi ...
Cảm ơn, các lệnh rất hữu ích, tôi nghi ngờ rằng tôi nhớ rằng trong Ubuntu tôi đã từng sử dụng lệnh định vị, nó có phải là một số bí danh của tìm hay ...
Phủ định xác định vị trí, định vị y định vị là các lệnh tìm kiếm khác không giống như tìm, họ sử dụng cơ sở dữ liệu cần được cập nhật định kỳ bằng lệnh cập nhậtb.
Cả hai loại lệnh đều có công dụng của chúng. Ví dụ tôi thường sử dụng cập nhậtb tiếp theo là định vịxác định vị trí khi tôi thực sự muốn tìm một thứ gì đó nhanh chóng trong thư mục có nhiều dữ liệu mà tôi biết không được cập nhật quá thường xuyên (ví dụ: một gói trong kho lưu trữ) và tìm khi tôi muốn làm điều gì đó phức tạp hơn như kết hợp các kết quả tìm kiếm với một lệnh khác hoặc khi tôi không muốn tạo cơ sở dữ liệu vì tôi biết rằng thư mục mà tôi sẽ tìm kiếm không chứa quá nhiều thông tin.
Cảm ơn Hugo rất nhiều, lời giải thích tuyệt vời, tôi chỉ có thể nói rằng thiết bị đầu cuối mạnh mẽ như thế nào trong gnu / linux!
Chào bạn, mình thấy đây là một chủ đề cũ, nhưng hy vọng bạn vẫn có thể giúp đỡ mình.
Tôi đang học cách sử dụng regexp kể từ khi tôi xem một tài liệu và tôi đang tìm kiếm các từ lỗi hoặc lỗi và lỗi dẫn xuất của chúng hoặc lỗi hoặc lỗi, v.v. và regexp của tôi là:
: / \ (. * \ (error | fail \). * \) /
Khi thực thi nó, nó cho tôi biết rằng không có kết quả phù hợp nào 🙁 nhưng
:/\(.*\(lỗi\).*\)/
o
: / \ (. * \ (Thất bại \). * \) /
Nếu bạn thấy trùng khớp, bạn có thể cho tôi biết tôi sai như thế nào không?
Dòng đầy đủ mà bạn đang đặt là gì?
Để kiểm tra và xem nếu tôi tìm thấy giải pháp.
Mặt khác, nếu bạn muốn, bạn có thể kiểm tra ở đây: https://blog.desdelinux.net/?s=expresiones+regulares
Vui lòng giúp tôi, tôi muốn sao chép các tệp có đuôi * _ZFIR0069.TXT sang một đường dẫn khác và thêm ngày vào cuối, tôi đang thực hiện một lệnh:
date = $ (ngày + »% Y% m% d%»)
find / xcom_rep / FATF / exit / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / FATF / exit / 42 / {} _ $ date \;
Nhưng kết quả là:
{} _20160225% -> nhưng nó chỉ sao chép tất cả một tệp và nó được đổi tên theo cách đó
Những gì tôi muốn là nó sao chép tất cả các tệp và có định dạng này * _ZFIR0069_ $ date .TXT
Chúc mừng.
Sự khác biệt giữa find * -type d và find / home / pepe -type d là gì? Tôi muốn liệt kê các thư mục trong tài khoản của mình và tôi không hiểu tại sao cái đầu tiên làm đúng và cái thứ hai thì không. giúp đỡ
Làm cách nào tôi có thể tìm thấy các tệp kết thúc bằng số? Cảm ơn