Bạn có thể sử dụng type
hoặc command -v
. Đầu ra của type
con người có thể đọc được; đầu ra của command -v
có thể được thực thi bởi Bash.
Lưu ý rằng chúng thực sự là một chút khác nhau. type
và command
tra cứu giá trị băm của lệnh. Đó là để nói, nếu bạn gõ cmd
, type cmd
hoặc command -v cmd
sẽ cho bạn biết chính xác những gì sẽ được chạy. Chúng cũng hoạt động trên các bí danh, các hàm Bash và các nội dung Bash (mặc dù type -p
sẽ bỏ qua các tệp này và chỉ trả về các tệp thực).
which
chỉ cần tìm kiếm trên PATH. Điều này khác nhau bởi vì:
- Nếu có một bí danh, hàm hoặc hàm dựng sẵn có cùng tên, nó sẽ được gọi thay thế.
- Nếu một lệnh đã được thêm vào trước đó trong PATH kể từ lần băm cuối cùng, nó sẽ được tìm thấy bởi
which
, nhưng thực thi lệnh đó sẽ sử dụng giá trị băm (bạn có thể buộc cập nhật hàm băm trong Bash với hash -r
).
Thông thường mọi người thực sự muốn type
, không which
, ít nhất là để sử dụng tương tác, vì họ sử dụng nó để tìm hiểu "lệnh này đến từ đâu khi tôi chạy nó?" Bạn chỉ nên sử dụng which
nếu bạn thực sự muốn thực hiện tra cứu PATH.