Điểm:3

find /bin -iname 'sh*' không trả về bất kỳ kết quả nào

lá cờ gg

Câu hỏi là về cú pháp của tìm thấy chỉ huy

me@222:~$ find /bin -iname 'sh*'

không trả về bất kỳ kết quả nào, trong khi:

me@222:/bin$ find -iname 'sh*'

hoạt động tốt

thông tin thiết lập: sử dụng putty từ windows đến điều khiển từ xa vào Ubuntu 20 LTS.

Cũng thế:
Tôi muốn yêu cầu một cú pháp để xem chính xác những gì find đang làm. ví dụ: các tệp mà nó đang duyệt qua, đường dẫn chính xác hoặc chuỗi tên tệp mà nó đang cố so khớp, v.v.

terdon avatar
lá cờ cn
Đối với bit "cũng" của bạn, tôi nghĩ cách tốt nhất của bạn là chạy `set -x`, điều này ít nhất sẽ hiển thị cho bạn lệnh chính xác đang được chạy, sau khi shell hoàn thành việc mở rộng mọi thứ. Nó sẽ không giúp được gì nhiều trong trường hợp này mặc dù vì bạn đã đưa ra các đường dẫn chính xác (`'*sh'` sẽ được đọc bởi `find`, nó không được mở rộng bởi trình bao).
eliu avatar
lá cờ gg
@terdon xin lỗi, cần thêm thông tin ở đây, có phải chúng ta đang nói về hành vi "mở rộng ký tự đại diện" của `*`? Tôi đã vấp phải quả mìn đó rồi, nên tôi rất giỏi. Tuy nhiên, `set -x` này, tôi không thấy trang hướng dẫn cho nó, nó là gì?
terdon avatar
lá cờ cn
Xem `bộ trợ giúp`. Đó là một điều bash khiến bash in ra lệnh mở rộng mà nó sẽ chạy. Vì vậy, ví dụ: nếu bạn chạy `find /m* -name foo` nó sẽ hiển thị `find /media /mnt -name foo`.
Điểm:11
lá cờ hr

Trên các hệ thống Ubuntu gần đây, /thùng rác là một liên kết tượng trưng đến /usr/bin bởi vì hợp nhất, và tìm thấy lệnh không theo các liên kết tượng trưng theo mặc định. Từ người đàn ông tìm thấy:

   -P Không bao giờ theo các liên kết tượng trưng. Đây là hành vi mặc định.
          Khi find kiểm tra hoặc in thông tin một tệp và tệp được
          một liên kết tượng trưng, ​​thông tin được sử dụng sẽ được lấy từ
          thuộc tính của chính liên kết tượng trưng.

   -L Theo các liên kết tượng trưng. […]

   -H Không theo các liên kết tượng trưng, ​​​​ngoại trừ trong khi xử lý comâ
          đối số dòng mand. Khi find kiểm tra hoặc in thông tin
          về tệp, thông tin được sử dụng sẽ được lấy từ propâ
          các đặc tính của chính liên kết tượng trưng. Ngoại lệ duy nhất cho điều này
          hành vi là khi một tệp được chỉ định trên dòng lệnh là một symâ
          liên kết bolic, và liên kết có thể được giải quyết. Đối với tình hình đó,
          thông tin được sử dụng được lấy từ bất kỳ liên kết nào trỏ đến
          (nghĩa là liên kết được theo dõi). Thông tin về liên kết
          chính nó được sử dụng làm phương án dự phòng nếu tệp được trỏ tới bởi symâ
          liên kết bolic không thể được kiểm tra. Nếu -H có hiệu lực và một trong
          các đường dẫn được chỉ định trên dòng lệnh là một liên kết tượng trưng đến một
          thư mục, nội dung của thư mục đó sẽ được kiểm tra
          (mặc dù tất nhiên -maxdepth 0 sẽ ngăn chặn điều này).

bạn có thể muốn

tìm -H /bin -iname 'sh*'

hoặc

tìm /usr/bin -iname 'sh*'

để làm theo /thùng rác symlink nhưng vẫn giữ nguyên hành vi mặc định bên dưới.

eliu avatar
lá cờ gg
THÁNH, RẤT bắt rất đẹp. Cảm ơn. Kinda giải thích lý do tại sao đặt thông tin bí mật như vậy ngay ở phần đầu của trang hướng dẫn.
user10489 avatar
lá cờ in
hoặc `find /bin/` để buộc nó giải quyết liên kết tượng trưng đến thư mục đích của nó, thao tác này gần giống như `-H`
eliu avatar
lá cờ gg
https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap03.html#tag_21_03_00_75

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.