Phân biệt lệnh tìm đường dẫn tuyệt đối “whereis” và “which” trên Linux

451
27-03-2018
Phân biệt lệnh tìm đường dẫn tuyệt đối “whereis” và “which” trên Linux

Which là một lệnh rất hữu ích được sử dụng để tìm vị trí của tệp thực thi nằm trong đường dẫn của bạn. Hãy tìm hiểu thông tin cùng Bizfly Cloud dưới bài viết này nhé!

# which yacc 

/usr/bin/yacc

Lệnh whereis cũng tương tự như vậy:

# whereis yacc 

yacc: /usr/bin/yacc /usr/share/man/man1p/yacc.1p.gz

Nó không chỉ trả về vị trí của tệp thực thi mà còn trả về các tệp nguồn và các trang của người dùng. Một sự khác biệt khác là nó không tìm kiếm đường dẫn được cấu hình mà nó sẽ tìm được một danh sách nội bộ của các đường dẫn Unix phổ biến.

Vì vậy, điều này về cơ bản có nghĩa là có thực thi sẽ được tìm thấy bởi which, không phải bởi whereis, lý do là vì chúng đang ở trong một non-standard directory mà là trong đường dẫn. Mặt khác, whereis sẽ tìm thấy các tệp thực thi khác không được tìm thấy bởi which nếu một số thư mục chuẩn không nằm trong đường dẫn.

Vì vậy, nếu bạn không tìm được  tập tin thực thi với một trong hai lệnh, bạn nên thử lệnh còn lại.

Which vẫn là lệnh khá được ưa thích so với whereis bởi vì nó chỉ trả lại một đường dẫn đầy đủ mà không cần bất kỳ thứ gì khác, giúp dễ dàng kết hợp nó với các lệnh khác, ví dụ:

# cat `which yacc` 

#! /bin/sh 

exec /usr/bin/bison -y "$@"

Tất nhiên bạn cũng có thể sử dụng whereis để chỉ hiển thị binaries và sau đó sử dụng awk để có được output bạn cần:

# whereis -b yacc | awk '{ print $2; }' 

/usr/bin/yacc

Vì vậy, kết hợp nó với cat:

# cat `whereis -b yacc | awk '{ print $2; }'` 

#! /bin/sh 

exec /usr/bin/bison -y "$@"

Thao tác này chắc chắn sẽ dài hơn và phức tạp hơn.

Dịch từ: benohead.com/linux-which-vs-whereis/

>> Có thể bạn quan tâm: Hướng dẫn chi tiết nhất cách kiểm tra số lượng file đang được mở bởi 1 tiến trình trên Solaris

BizFly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.

BizFly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.

Độc giả quan tâm đến các giải pháp của BizFly Cloud có thể truy cập tại đây.

DÙNG THỬ MIỄN PHÍ và NHẬN ƯU ĐÃI 3 THÁNG tại: Manage.bizflycloud

TAGS: linux
SHARE
Hỗ trợ kỹ thuật
Kinh doanh, CSKH