Saya dapat menunjukkan file target yang ditunjukkan oleh tautan ls -l
:
snowch$ ls -l /usr/local/bin/mvn
lrwxr-xr-x 1 snowch admin 29 12 Dec 08:58 /usr/local/bin/mvn -> ../Cellar/maven/3.2.3/bin/mvn
Apakah ada cara untuk menunjukkan lebih sedikit output tanpa harus menyalurkan melalui perintah lain seperti awk? Misalnya:
snowch$ ls ?? /usr/local/bin/mvn
/usr/local/bin/mvn -> ../Cellar/maven/3.2.3/bin/mvn
Saya menjalankan 3.2.53 pada OS X 10.9.5. Output dari beberapa perintah ditunjukkan di bawah ini:
snowch$ ls -H /usr/local/bin/mvn
/usr/local/bin/mvn
snowch$ ls -L /usr/local/bin/mvn
/usr/local/bin/mvn
snowch$ file /usr/local/bin/mvn
/usr/local/bin/mvn: POSIX shell script text executable
snowch$ file -b /usr/local/bin/mvn
POSIX shell script text executable
stat -f "%N -> %Y" -- /usr/local/bin/mvn
bekerja dengan baik. Terima kasih!stat -c %N -- /usr/local/bin/mvn
. Untuk menghapus kutipan, saya harus| perl -pe 's/['"'"'`]//g'
tr -d \'\`
akan cukup. Perhatikan bahwa sistem RHEL akan memiliki GNUfind
yang dapat Anda kendalikan.Gunakan
file
perintah.atau
Juga, silakan pergi membaca halaman manual dari
ls
dan memeriksa pilihan-L
dan-H
dan melihat apakah yang akan cukup kebutuhan Anda.sumber
ls
opsi, tetapi tidakfile
. Sayangnya, sepertinya tidak ada yang bekerja :(linux
kotak. Silakan tambahkanosx
sebagai salah satu tag Anda. Itu harus menjadi perhatianosx
pengguna juga. Saya telah mengedit posting untuk menambahkan tag, tetapi saya tidak memiliki kredit yang cukup untuk pengeditan segera muncul.Dengan
ls
setidaknya GNU (dan, tampaknya,tcsh
implementasi), Anda dapat meretas$LS_COLORS
variabel lingkungan untuk menyisipkan pembatas di tempat yang Anda suka (tetapitcsh
builtinls-F
tidak melakukan target tautan - hanya tanda tautan ) Biasanyals
memasukkan terminal yang tidak dapat dicetak keluar secara sewenang-wenang. berdasarkan nilai-nilai yang disimpan dalam lingkungan itu var, tapi tidak ada yang menghentikan kita dari memasukkan apa pun yang sewenang-wenang. Lebih lanjut tentang ini di sini .Sebagai contoh:
Itu menempatkan string seperti
//
di kepala setiap daftar (jadi sebelumlrwcrwx
) dan///\n
tepat sebelum nama file tautan apa pun.sed
kemudian filter pada rentang garis - itu akand
menghapus setiap baris input sampai bertemu///
dan dari sana melalui baris berikutnya yang cocok//
itu akan menghapus baris yang cocok//
. Jadi itu hanya mendapatkan nama tautan dan target tautan - terlepas dari karakter yang mengintervensi. Ini karena/
tidak dapat terjadi dalam nama file - dan mereka yang berada di jalur mana punls
mungkin mencetak hanya akan muncul secara tunggal.Lihat?
... yang mencetak:
Cobalah sendiri.
sumber
ls
yang mendukungLS_COLORS
cara--color=always
dan opsi serta opsi setelah argumen? Jika pada sistem GNU, mengapa Anda menggunakan sesuatu yang berbelit-belit saat Anda dapat menggunakanfind
ataustat
? Itu juga mungkin tidak akan berhasil jika Anda melakukan beberapaln -s /// some-file
.ls
. Saya ingat pernah membaca bahwa di tempat lain berbulan-bulan yang lalu tentangls
semua cenderung menerima termcap seperti sintaks. Poin bagus tentangln -s ///
hal itu - tetapi\0
NUL bekerja juga - dan secara-R
ekologis. Seperti mengapa - yah, mudah digunakan. Dalam beberapa kasus lebih mudah daripadafind
- dan tampaknya lebih pada topik di sini daripadafind
seharusnya. Bagaimanapun, tidak terlalu banyak orang yang mempertimbangkannya, jadi saya menyebutkannya ketika saya diingatkan.tcsh
memilikils-F
builtin yang mendukungLS_COLORS
cara yang sama seperti beberapa versi GNUls
, tetapi resor untuk memohonls -F
jika Anda melewatkan opsi apa pun untuk itu, sehingga tidak akan berfungsi di sini kecuali jikals
GNU adals
di sistem Anda.[Di Linux / Bash]
Saya akan melakukan ini:
The
sed
perintah runtuh beberapa ruang untuk satu ruang; yangcut
ekstrak bidang-9 dan seterusnya di mana bidang-pemisah adalah ruang.Output khas dari ini:
Alternatifnya adalah:
Tapi itu tidak sempurna: yang pertama bisa menghasilkan ruang tambahan; yang kedua, ruang terdepan.
sumber