Câu trả lời:
dpkg -L packagename | grep 'bin/'
Để có danh sách tất cả các tệp được cài đặt trong một gói (giả sử moreutils
), hãy chạy lệnh này:
dpkg -L moreutils
Bây giờ, tất cả những gì chúng ta cần làm là lọc ra những tệp có khả năng thực thi trong đường dẫn. Nói chung, các lệnh được cài đặt để /bin
, /sbin
, /usr/bin
và /usr/sbin
, vì vậy chúng tôi chỉ có thể phù hợp với những mô hình:
dpkg -L moreutils | grep -e '^/bin/' -e '^/sbin/' -e '^/usr/bin/' -e '^/usr/sbin/'
Nếu bạn muốn một cái gì đó dễ dàng hơn để ghi nhớ, nhưng không hoàn toàn chính xác, chỉ cần lọc ra các dòng bin/
thay thế:
$ dpkg -L moreutils | grep 'bin/'
/usr/bin/isutf8
/usr/bin/pee
/usr/bin/errno
/usr/bin/vidir
/usr/bin/zrun
/usr/bin/lckdo
/usr/bin/ifne
/usr/bin/mispipe
/usr/bin/parallel
/usr/bin/sponge
/usr/bin/ts
/usr/bin/ifdata
/usr/bin/vipe
/usr/bin/chronic
/usr/bin/combine
Vì vậy, trong ví dụ này, tôi đã phát hiện ra các lệnh: isutf8
, pee
, errno
vv
Một số gói không cài đặt lệnh vào đường dẫn, nhưng cài đặt biểu tượng cho ứng dụng GUI. Nếu bạn muốn tìm lệnh khởi chạy ứng dụng, bạn sẽ cần tìm .desktop
tệp đã cài đặt và xem dòng bắt đầu bằng Exec=
. Ví dụ:
$ dpkg -L worldofgoo | grep '\.desktop$'
/usr/share/applications/WorldOfGoo.desktop
$ grep '^Exec=' /usr/share/applications/WorldOfGoo.desktop
Exec=/opt/WorldOfGoo/WorldOfGoo
Vì vậy, trong ví dụ này, tôi đã phát hiện ra rằng tôi nên chạy /opt/WorldOfGoo/WorldOfGoo
để khởi chạy World Of Goo từ thiết bị đầu cuối.
dpkg -L chromium-browser | sed -rn 's/.*bin\/(.*)$/\1/p'
như -n
và p
chỉ gây ra các dòng thay đổi được in. Tiết kiệm cho bạn 60/1000 giây!
grep
có thể được hợp nhất một chút dựa trên ý tưởng rằng tất cả các mẫu kết thúc vớibin/
. (Và tôi không thể cưỡng lại việc cắt bớt tên đường dẫn.)dpkg -L moreutils | grep -e '/[s]*bin/' | sed -r 's/.*bin\/(.*)$/\1/'