Sự khác biệt giữa which
và là whereis
gì?
which
và whereis
đưa ra đầu ra khác nhau (trên macOS Sierra) apple.stackexchange.com/questions/259047/ chủ
type
là vượt trội. Nó cũng biết về các bí danh đã xác định, các hàm, v.v.
Sự khác biệt giữa which
và là whereis
gì?
which
và whereis
đưa ra đầu ra khác nhau (trên macOS Sierra) apple.stackexchange.com/questions/259047/ chủ
type
là vượt trội. Nó cũng biết về các bí danh đã xác định, các hàm, v.v.
Câu trả lời:
Làm thế nào về việc học whereis
và which
sử dụng whatis
?
$ whatis which
which (1) - shows the full path of (shell) commands
$ whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
Về cơ bản, whereis
tìm kiếm các tệp "có thể hữu ích", trong khi which
chỉ tìm kiếm các tệp thực thi.
Tôi hiếm khi sử dụng whereis
. Mặt khác, which
rất hữu ích, đặc biệt trong các kịch bản. which
là câu trả lời cho câu hỏi sau: Lệnh này đến từ đâu?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
whereis
, không phải đường dẫn which
.
which
cho thấy con đường thực tế. Bạn có chắc chắn đường dẫn được chỉ bởi which
không chỉ là một liên kết tượng trưng đến đường dẫn được chỉ bởi whereis
? Có lẽ nó là một bí danh vỏ. Trong bash, hãy thử chạy type your_cmd_here
.
whereis
tìm kiếm các vị trí * nix tiêu chuẩn cho một lệnh được chỉ định.
which
tìm kiếm PATH dành riêng cho người dùng của bạn (có thể bao gồm một số vị trí trong đó tìm kiếm và có thể không bao gồm các vị trí khác - nó cũng có thể bao gồm một số địa điểm whereis
không tìm kiếm nếu bạn đã thêm vào PATH của mình)
Trích dẫn trang người đàn ông của họ:
trong đó :
trong đó định vị các phần nguồn / nhị phân và hướng dẫn sử dụng cho các tệp được chỉ định.
Ví dụ :
$ whereis php
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz
tức là, "php" thực thi và một số thứ khác (như trang man).
và trong đó :
trong đó trả về tên đường dẫn của các tệp sẽ được thực thi trong môi trường hiện tại
Ví dụ :
$ which php
/usr/bin/php
tức là chỉ có tệp thực thi "php".
mà tìm kiếm cho thực thi trong thư mục theo quy định của PATH biến môi trường. Và nếu phát hiện ra, tên đường dẫn đầy đủ của tệp thực thi này sẽ được in.
$ which ls
/ bin / ls
$ which ifconfig
$ # Không có đầu ra, bởi vì ifconfig chỉ tồn tại trong PATH của root.
trong đó tìm kiếm các tệp thực thi, tệp nguồn và các trang thủ công bằng cách sử dụng cơ sở dữ liệu được xây dựng bởi hệ thống.
$ whereis less
less: / bin / less / usr / bin / less / usr / bin / X11 / less /usr/share/man/man1/less.1.gz
Nhưng có vẻ như whereis và xác định vị trí không sử dụng cơ sở dữ liệu tương tự. Khi tôi cài đặt một phần mềm và sau đó sử dụng whereis và xác định vị trí ngay lập tức để tìm kiếm phần mềm này. Kết quả là whereis có thể tìm hiểu một số tác phẩm liên quan đến phần mềm này khi xác định vị trí không thể. Họ có thực sự sử dụng cơ sở dữ liệu khác nhau? Cơ sở dữ liệu hoạt động như thế nào? --Vâng, làm thế nào về việc từ chối làm một nhà giáo? :)