Làm cách nào để tôi có thể tìm một cách đệ quy tất cả các tệp trong thư mục hiện tại và thư mục con dựa trên đối sánh ký tự đại diện?
Sử dụng find cho điều đó:
find . -name "foo*"
find
cần một điểm bắt đầu và .
(dấu chấm) trỏ đến thư mục hiện tại.
Tìm đường ống vào grep thường thuận tiện hơn; nó cung cấp cho bạn toàn bộ sức mạnh của các biểu thức chính quy để đối sánh ký tự đại diện tùy ý.
Ví dụ: để tìm tất cả các tệp có chuỗi không phân biệt chữ hoa chữ thường "foo" trong tên tệp:
~$ find . -print | grep -i foo
find
sẽ tìm thấy tất cả các tệp phù hợp với một mẫu:
find . -name "*foo"
Tuy nhiên, nếu bạn muốn có một bức tranh:
tree -P "*foo"
Hi vọng điêu nay co ich!
find -L . -name "foo*"
Trong một số trường hợp, tôi cần tham số -L để xử lý các liên kết thư mục tượng trưng. Theo mặc định, các liên kết tượng trưng bị bỏ qua. Trong những trường hợp đó, nó khá khó hiểu vì tôi sẽ thay đổi thư mục thành một thư mục con và thấy tệp phù hợp với mẫu nhưng tìm thấy sẽ không trả về tên tệp. Sử dụng -L giải quyết vấn đề đó. Các tùy chọn liên kết tượng trưng để tìm là -P -L -H
fd
Trong trường hợp find
quá chậm, hãy thử fd
tiện ích - một giải pháp thay thế đơn giản và nhanh chóng để find
viết bằng Rust.
Cú pháp:
fd PATTERN
Bản giới thiệu:
Trang chủ: https://github.com/sharkdp/fd
Nếu trình bao của bạn hỗ trợ một tùy chọn lấp lánh mới (có thể được kích hoạt bởi shopt -s globstar
:), bạn có thể sử dụng:
echo **/*foo*
để tìm bất kỳ tệp hoặc thư mục nào một cách đệ quy. Điều này được hỗ trợ bởi Bash 4, zsh và các trình bao tương tự.
Cá nhân tôi đã định nghĩa hàm shell này:
f() { find . -name "*$1*"; }
Lưu ý: Dòng trên có thể được dán trực tiếp vào trình bao hoặc được thêm vào ~/.bashrc
tệp của người dùng của bạn .
Sau đó, tôi có thể tìm kiếm bất kỳ tệp nào bằng cách nhập:
f some_name
Hoặc bạn có thể sử dụng một fd
tiện ích với một cú pháp đơn giản, ví dụ fd pattern
.
find <directory_path> -type f -name "<wildcard-match>"
Trong đối sánh ký tự đại diện, bạn có thể cung cấp chuỗi mà bạn muốn đối sánh, ví dụ: * .c (cho tất cả các tệp c)
Bạn có thể dùng:
# find . -type f -name 'text_for_search'
Nếu bạn muốn sử dụng, sử dụng REGX -iname
# find . -type f -iname 'text_for_search'
Lệnh sau sẽ liệt kê tất cả các tệp có tên chính xác "mẫu" (ví dụ) trong thư mục hiện tại và thư mục con của nó.
find ./ -name "pattern"
để tìm kiếm tệp find / -xdev -name settings.xml
-> toàn bộ máy tính find ./ -xdev -name settings.xml
-> thư mục hiện tại & thư mục con của nó
cho các tệp có kiểu mở rộng
find . -type f -name "*.iso"
Cách mặc định để tìm kiếm tệp đệ quy và khả dụng trong hầu hết các trường hợp là
find . -name "filepattern"
Nó bắt đầu duyệt đệ quy cho tên tệp hoặc mẫu từ trong thư mục hiện tại nơi bạn đang ở. Với lệnh find, bạn có thể sử dụng các ký tự đại diện và các công tắc khác nhau, để xem danh sách đầy đủ các tùy chọn, hãy nhập
man find
hoặc nếu trang người đàn ông không có sẵn tại hệ thống của bạn
find --help
Tuy nhiên, có nhiều công cụ hiện đại hơn và nhanh hơn sẽ tìm thấy, đang duyệt qua toàn bộ hệ thống tệp của bạn và lập chỉ mục các tệp của bạn, một công cụ phổ biến như vậy là định vị hoặc slocate / mlocate, bạn nên kiểm tra hướng dẫn sử dụng hệ điều hành của mình để biết cách cài đặt nó và một khi nó đã cài đặt nó cần phải khởi tạo cơ sở dữ liệu, nếu tập lệnh cài đặt không làm được điều đó cho bạn, nó có thể được thực hiện theo cách thủ công bằng cách gõ
sudo updatedb
Và, sử dụng nó để tìm kiếm một số loại tệp cụ thể
locate filename
Hoặc, để tìm tên tệp hoặc mẫu từ trong thư mục hiện tại, bạn có thể nhập:
pwd | xargs -n 1 -I {} locate "filepattern"
Nó sẽ xem qua cơ sở dữ liệu các tệp và nhanh chóng in ra các tên đường dẫn phù hợp với mẫu mà bạn đã nhập. Để xem danh sách đầy đủ các tùy chọn của định vị, hãy nhập: locate --help
hoặcman locate
Ngoài ra, bạn có thể định cấu hình định vị để cập nhật cơ sở dữ liệu của nó vào thời gian đã lên lịch thông qua cron job, vì vậy, mẫu cron cập nhật db lúc 1AM sẽ trông giống như sau:
0 1 * * * updatedb
Các công việc cron này cần được định cấu hình bởi root, vì updateb cần có đặc quyền root để truyền toàn bộ hệ thống tệp.
Lệnh dưới đây giúp tìm kiếm bất kỳ tệp nào
1) Không phân biệt trường hợp
2) Kết quả Loại trừ các thư mục không được phép
3) Tìm kiếm từ thư mục gốc hoặc từ đường dẫn bạn thích. Thay đổi / với con đường bạn thích.
Cú pháp:
find -iname '' 2> & 1 | grep -v "Quyền bị từ chối"
Ví dụ
find / -iname 'C * .xml' 2> & 1 | grep -v "Quyền bị từ chối"
find / -iname '*C*.xml' 2>&1 | grep -v "Permission denied"
Tôi ngạc nhiên khi thấy rằng định vị không được sử dụng nhiều khi chúng ta đi đệ quy.
Trước tiên, tôi sẽ thực hiện định vị "$ PWD" để lấy danh sách các tệp trong thư mục quan tâm hiện tại và sau đó chạy greps trên chúng khi tôi muốn.
locate "$PWD" | grep -P <pattern>
Tất nhiên, điều này giả sử rằng cập nhậtb được thực hiện và chỉ mục được cập nhật định kỳ. Đây là cách tìm tệp nhanh hơn nhiều so với việc chạy tìm và yêu cầu nó đi xuống dưới gốc cây. Đề cập đến điều này cho đầy đủ. Không có gì chống lại việc sử dụng tìm, nếu cây không nặng lắm.
Sử dụng
find path/to/dir -name "*.ext1" -o -name "*.ext2"
Giải trình
find
đệ quy.-o
tắt của -or
. Vì vậy, ở trên có nghĩa là tìm kiếm ký tự đại diện này HOẶC ký tự này. Nếu bạn chỉ có một mẫu thì không cần -o
.Nếu bạn muốn tìm kiếm tệp đặc biệt bằng ký tự đại diện, bạn có thể sử dụng mã sau:
find . -type f -name "*.conf"
Giả sử, bạn muốn tìm kiếm mọi tệp .conf từ đây:
.
có nghĩa là tìm kiếm bắt đầu từ đây (địa điểm hiện tại)
-type
có nghĩa là loại mục tìm kiếm mà ở đây là tệp (f).
-name
nghĩa là bạn muốn tìm kiếm các tệp có tên * .conf .
Thao tác này sẽ tìm kiếm tất cả các tệp liên quan trong thư mục hiện tại và thư mục con, tính toán số dòng của chúng một cách riêng biệt cũng như toàn bộ:
find . -name "*.wanted" | xargs wc -l
Cate Blanchett đã bất chấp những lời khuyên hẹn hò điển hình khi cô gặp chồng mình.
Michael Sheen là một diễn viên phi lợi nhuận nhưng chính xác thì điều đó có nghĩa là gì?
Ngôi sao của Hallmark Colin Egglesfield chia sẻ về những cuộc gặp gỡ với người hâm mộ ly kỳ tại RomaDrama Live! cộng với chương trình INSPIRE của anh ấy tại đại hội.
Bạn sẽ phải phủi sạch đầu đĩa Blu-ray hoặc DVD để xem tại sao Northern Exposure trở thành một trong những chương trình nổi tiếng nhất của thập niên 90.
The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!
Bạn biết đấy, hai sản phẩm này là nguồn điện để làm sạch, riêng chúng. Nhưng cùng với nhau, chúng có một loạt công dụng hoàn toàn khác.
Thủy điện rất cần thiết cho lưới điện của Hoa Kỳ, nhưng nó chỉ tạo ra năng lượng khi có nước di chuyển. Bao nhiêu nhà máy thủy điện có thể gặp nguy hiểm khi các hồ và sông cạn kiệt?
Tóc tỉa từ các tiệm và các khoản quyên góp cá nhân có thể được tái sử dụng như những tấm thảm thấm dầu và giúp bảo vệ môi trường.
Edward Norton đã muốn đưa cuốn tiểu thuyết Motherless Brooklyn của Jonathan Lethem's Joycean 1999 lên màn ảnh kể từ khi nó được xuất bản. Bây giờ, 20 năm sau, một đoạn giới thiệu đã xuất hiện cho câu chuyện sôi nổi, đưa câu chuyện của Lethem trở lại những năm 1950 với rất nhiều gương mặt quen thuộc.
Có thích thú khi sử dụng Thẻ Apple mới của bạn không? Trước khi bạn bắt đầu chi tiêu, có một nhiệm vụ bổ sung cần xem xét: chọn không tham gia trọng tài ràng buộc. Bạn sẽ phát hiện ra các điều khoản trọng tài ràng buộc trong nhiều thỏa thuận tài chính vì nó giúp ngăn các ngân hàng và đối tác kinh doanh của họ không phải ra tòa.
Điểm số tại vòng chung kết Fortnite World Cup Solo hôm nay là rất lớn, với người chiến thắng Bugha ghi được nhiều hơn 26 điểm so với người về thứ hai là Psalm. Nhưng không phải ai cũng có thể giành chiến thắng: Bốn cầu thủ ra về với 0 điểm, nhưng — ít nhất là trên Twitter — họ là những người thể thao tốt về điều đó.
Huấn luyện viên trưởng của bộ môn thể dục dụng cụ UCLA Valorie Kondos-Field theo dõi Katelyn Ohashi thi đấu thăng bằng trong trận gặp Stanford tại Pauley Pavilion vào ngày 10 tháng 3 năm 2019 ở Los Angeles, California. Vụ bê bối gian lận tuyển sinh đại học tiết lộ các chi tiết của một quá trình chính thức hóa để đưa những đứa trẻ thất bại của các gia đình giàu có và nổi tiếng vào các trường đại học đáng tin cậy và danh tiếng, sử dụng một "cửa phụ" đắt tiền cho các bậc cha mẹ mà sự giàu có của họ khiến họ không có cơ hội. chỉ cần tài trợ cho một cánh mới trong khuôn viên trường.
Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!
Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa. Từ Hollywood đến New York và mọi nơi ở giữa, hãy xem các ngôi sao yêu thích của bạn đang làm gì!
Các nhà điều tra đang xem xét liệu nhóm và nghi phạm có biết nhau trước vụ tấn công hay không
Vụ kiện, nêu tên một số học khu, lập luận rằng dự luật "Không nói đồng tính" được ban hành gần đây của Florida "có hiệu quả im lặng và xóa bỏ học sinh và gia đình LGBTQ +"
Vào năm 2021, tôi khuyến khích bạn suy nghĩ lại mọi thứ bạn biết về khách hàng mà bạn phục vụ và những câu chuyện bạn kể cho họ. Lùi lại.
Vào ngày sinh nhật thứ 9 của Felix The Cat, tôi nhớ về một trong những mất mát lớn nhất trong cuộc đời trưởng thành của tôi - Sophie của tôi vào năm 2013. Tôi đã viết bài luận này và chia sẻ nó trên nền tảng này một thời gian ngắn vào năm 2013.
Tôi ghét từ "tàu đắm". Mọi người cảm thấy thoải mái trong la bàn đạo đức của riêng mình, và khi làm như vậy, họ thấy mình vượt qua sự phán xét.
Bài đăng này khám phá tầm nhìn về đám mây phi tập trung của nhóm DFINITY và cách nó liên quan đến các nhà cung cấp blockchain truyền thống và đám mây hiện có như Amazon Web Services. Các minh chứng về công nghệ DFINITY được áp dụng bởi một mạng lưới quy mô lớn sẽ được thực hiện vào mùa thu năm 2017, sau đó sẽ được gây quỹ Chính cho quỹ hỗ trợ phi lợi nhuận, với mạng “đám mây mở” dự kiến sẽ ra mắt vào đầu mùa hè năm 2018 .