Câu trả lời:
which
sẽ tìm kiếm đường dẫn của bạn cho các đối số bạn cung cấp, nó được tìm thấy trên bất kỳ BSD hoặc SysV UNIX nào
moriarty:~ dave$ which bash true false
/bin/bash
/usr/bin/true
/usr/bin/false
which
không đưa ra bất kỳ kết quả nào cho tập lệnh tùy chỉnh (đó là trong $PATH
). type
làm.
Nếu bạn sử dụng nội dung bash type
, nó sẽ hiển thị cho bạn tất cả các vị trí (trong đường dẫn) cho một lệnh:
$ type -a ls
ls is aliased to `ls --color=always'
ls is /bin/ls
$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf
$ type -a touch
touch is /usr/bin/touch
touch is /bin/touch
Nếu lệnh là một hàm, nó sẽ liệt kê định nghĩa hàm:
$ type -a somefunc
somefunc is a function
somefunc ()
{
echo "hello, world"
}
Các ví dụ này là từ một hệ thống Ubuntu, nhưng kết quả sẽ tương tự với OS X.
which
không hiển thị đường dẫn cho tập lệnh tùy chỉnh (có trong $PATH
). type
làm.
Nó phụ thuộc vào những gì bạn đang tìm kiếm. Hầu hết các tiện ích phụ thuộc vào biến đường dẫn. Tuy nhiên, nếu những gì bạn đang tìm kiếm nằm trong đường dẫn của bạn thì có lẽ bạn không thực sự cần biết nó ở đâu trừ khi có nhiều bản sao của cùng một tệp thực thi.
Điều này không áp dụng cho hầu hết mọi thứ chạy trong OSX bởi vì chúng không chạy khá giống các nhị phân linux / unix thông thường. Dưới đây là một số phương pháp để tìm những thứ không có trong tuyên bố đường dẫn của bạn.
tìm thấy:
sudo find / -name <FILE>
Điều này sẽ tìm thấy bất cứ điều gì tồn tại trên hệ thống tệp bạn đưa ra làm đối số đầu tiên. Nó cần phải chạy như root để tìm kiếm thư mục riêng. Nó cũng hỗ trợ ký tự đại diện nếu bạn không hoàn toàn chắc chắn về tên.
Thiết bị đầu cuối:
Nếu bạn có tệp trong công cụ tìm, bạn có thể mở một cửa sổ đầu cuối và thả tệp vào đó. Terminal với sau đó hiển thị đường dẫn đầy đủ đến tập tin.
Đốm sáng:
Khá tự giải thích. Bạn đang quyên tặng các chu kỳ bộ xử lý để cho phép nó giữ một chỉ số của fi của bạn
which
lệnh mặc dù ý chí làm việc nói chung không phải là công cụ thích hợp để sử dụng làm loại công việc này. Xem phần Hỏi & Đáp này của U & L: unix.stackexchange.com/questions/85249/NH