Pipa dengan perintah ls


1

Ketika saya ingin tahu apakah suatu perintah adalah tautan atau tidak, saya memang suka mengikuti.

$ which locate
/usr/bin/locate
$ ls -l /usr/bin/locate
lrwxrwxrwx 1 root root 24  5月  3  2012 /usr/bin/locate -> /etc/alternatives/locate

Apakah mungkin untuk menulis dengan menggunakan pipa satu baris? Saya mencoba which locate | ls -l. Tapi itu tidak berhasil.

Jawaban:


2

Anda dapat menggunakan xargs untuk meneruskan hasil dari satu perintah ke perintah lain ...

yang menemukan | xargs ls -al


Terima kasih! Saya pikir xargs hanya digunakan ketika argumen terlalu panjang.
ironsand

Yakin! Itu punya banyak kegunaan berguna. Anda hanya meneruskan satu argumen ke sana pada satu waktu di sini, tetapi Anda dapat mengontrol bagaimana beberapa argumen diteruskan ke perintah target. Secara default, beberapa argumen akan ditafsirkan sebagai "ls -al arg1 arg2 arg3" tetapi menambahkan flag -n1 membatasinya ke satu argumen yang menghasilkan "ls -al arg1; ls -al arg2; ..." Gunakan flag -t untuk bereksperimen dan lihat output dari perintah yang dihasilkan xargs.
Bill Heller

2

Anda juga bisa melakukannya

ls -l `which locate`

Juga, (setidaknya di linux), lihat di:

namei `which locate`

Saya tidak tahu perintah namei. Terima kasih!
ironsand

2

readlink akan mencetak target tautan, atau tidak ada (dan menghasilkan false) jika subjeknya bukan tautan.

which locate | xargs readlink

Saya selalu menggunakan ls -l untuk menemukan sumber tautan. Terima kasih atas info Anda!
ironsand
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.