Bạn có thể sử dụng typehoặc command -v. Đầu ra của typecon người có thể đọc được; đầu ra của command -vcó 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. typevà commandtra cứu giá trị băm của lệnh. Đó là để nói, nếu bạn gõ cmd, type cmdhoặc command -v cmdsẽ 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 -psẽ bỏ qua các tệp này và chỉ trả về các tệp thực).
whichchỉ 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 whichnếu bạn thực sự muốn thực hiện tra cứu PATH.