which
tìm thấy khả năng thực thi nhị phân của chương trình (nếu nó nằm trong PATH của bạn). man which
giải thích rõ hơn:
trong đó trả về tên đường dẫn của các tệp (hoặc liên kết) sẽ được thực thi trong môi trường hiện tại, các đối số của nó được đưa ra dưới dạng các lệnh trong trình bao tuân thủ POSIX. Nó thực hiện điều này bằng cách tìm kiếm PATH cho các tệp thực thi khớp với tên của các đối số. Nó không theo các liên kết tượng trưng.
whereis
tìm tệp nhị phân, nguồn và tệp man cho một chương trình. Ví dụ
$ whereis gimp
/usr/bin/gimp /usr/lib/gimp /etc/gimp /usr/share/gimp /usr/share/man/man1/gimp.1.gz
Bạn có thể nhận thêm chi tiết bằng cách chuyển đầu ra của các lệnh này làm đối số cho ls -l
hoặcfile
$ ls -l $(which gimp)
lrwxrwxrwx 1 root root 8 Jun 30 19:59 /usr/bin/gimp -> gimp-2.8
$ file $(which gimp)
/usr/bin/gimp: symbolic link to gimp-2.8
locate
thực sự tìm thấy tất cả các tệp có mẫu được chỉ định ở bất cứ đâu trong đường dẫn của chúng. Bạn có thể yêu cầu nó chỉ tìm các tệp và thư mục có tên (chứ không phải đường dẫn đầy đủ) bao gồm mẫu có -b
tùy chọn, thường là những gì bạn muốn và đưa ra một danh sách ít khó sử dụng hơn.
locate
là nhanh bởi vì nó sử dụng cơ sở dữ liệu nhị phân được cập nhật định kỳ (một lần mỗi ngày, bởi cron
). Bạn có thể tự cập nhật nó để đảm bảo các tệp được thêm gần đây được tìm thấy bằng cách chạysudo updatedb
Một điều nữa về locate
- không quan tâm liệu các tệp có còn tồn tại hay không, vì vậy để tránh tìm các tệp bị xóa gần đây, hãy sử dụng -e
. Thường thì tôi cũng dẫn đến less
danh sách có thể dài. Điển hình là tôi làm:
sudo updatedb && locate -b -e gimp | less
Cách thức hoạt động của Dash của Unity được giải thích ở đây - nó sử dụng Zeitgeist để lập chỉ mục các tệp hệ thống và tìm hiểu từ các mẫu sử dụng và cho phép các ứng dụng khác sử dụng dữ liệu này, do đó, nó còn hoạt động nhiều hơn thế locate
.
type
? : P