ditemukan apakah biner menggunakan whereis tetapi tidak dapat menemukan mengapa? Bagaimana menemukan di mana biner akan dilepas?
Saya menemukan "ls" biner menggunakan "whereis" tetapi tidak dapat menemukan "ll"
$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
Tetapi tidak dapat menemukan ll:
$ whereis ll
ll:
command-line
ls
Ashish Karpe
sumber
sumber
type -a ls ll
Jawaban:
ll
bukan biner melainkan alias darils -alF
perintah.Periksa
.bashrc
file:sumber
type
, yang merupakan bawaan di sebagian besar shell, atauwhich
(/usr/bin/which
) sebagai gantiwhereis
. Berbeda dariwhereis
, mereka akan mendeteksi alias dll.type
, ya, tapiwhich
tidak akan mendeteksi alias. Seperti yang Anda perhatikan, ini adalah executable/usr/bin/which
, yang tidak memiliki akses ke alias shell Anda.zsh
inzsh
which
adalah built-in (dan mendeteksi alias)./usr/bin/which
tidak akan mendeteksi alias;which
dizsh
(dan saya kira di shell lain yang memilikinya sebagai built-in juga) akan mendeteksi alias.alias | which -i
, yang dengan sendirinya sering membuat alias, seperti padaalias which="alias | which -i"
. Sayangnya, versi di Ubuntu tampaknya tidak memiliki fitur ini, jadi ketika menggunakan yang dapat diterapkan secara umum, itu tidak ada di sini :-(Seperti dicatat oleh kos di komentar, Anda harus menggunakan pesta built-in
type
perintah yang, tidak sepertiwhereis
, juga menyadari alias dan shell built-in:(Untuk arti "hash", lihat pertanyaan ini di unix.SE. )
sumber
testfunc() { echo 'Hi!'; }; type testfunc
.Banyak pengguna menyukai jalan pintas dan inilah alias, opsi pintasan untuk pengguna.
Skrip tidak boleh menggunakan pintasan, yang bukan desain portabel, seperti yang Anda ketahui, perintah alias ini tidak didefinisikan secara konsisten.
Jawaban termudah untuk memenuhi kebutuhan Anda, dengan asumsi penggunaan 'll' diulangi:
Di dalam skrip, tentukan alias ll = 'ls-l', sebelum merujuk perintah, maka penggunaan 'll' akan berfungsi di seluruh skrip ini.
Jawaban yang lebih baik: lebih baik menggunakan perintah lengkap dalam skrip, memberikan dokumentasi. Jangan pernah menggunakan alias dalam skrip yang harus digunakan orang lain.
sumber
{}
tombol. Atau indentasi secara manual setiap baris kode dengan 4 spasi. Itu sintaks Markdown yang digunakan di sini di StackExchange. Lihat askubuntu.com/help/formatting untuk mempelajari lebih lanjut.