Saya perhatikan bahwa ls -l
tidak hanya mengubah format output, tetapi juga bagaimana symlink direktori ditangani:
> ls /rmn
biweekly.sh daily.sh logs ...
> ls -l /rmn
lrwxrwxrwx 1 root root 18 Feb 11 2011 /rmn -> /root/maintenance/
Saya ingin mendapatkan daftar terperinci tentang apa yang ada di dalamnya /rmn
, bukan informasi tentang /rmn
symlink.
Satu solusi yang dapat saya pikirkan adalah membuat fungsi shell yang melakukan sesuatu seperti ini:
cd /rmn
ls -l
cd -
Tapi itu tampaknya terlalu gila, terutama karena itu mengacaukan penggunaan selanjutnya cd -
. Apakah ada cara yang lebih baik?
(Saya menggunakan CentOS 2.6.9)
Jawaban:
Lihat apakah ls Anda memiliki opsi:
Jika itu tidak membantu, Anda dapat membuat pekerjaan makro Anda tanpa mengacaukan
cd -
dengan melakukan:yang berjalan dalam subkulit.
sumber
-H
, dan itu berhasil. Terima kasih!--dereference-command-line-symlink-to-dir
memiliki bentuk pendek.Saya tidak mengerti mengapa pemikiran tentang masalah sederhana ini menjadi begitu rumit - tetapi mungkin saya hanya menjawab pertanyaan itu dengan cara yang salah. Anyways: ketika saya membutuhkan fungsi serupa, saya menggunakan:
Itu berhasil dalam kasus saya. Dari
ls
halaman manual:Sebagai contoh, saya telah membuat saya jalan
/media/stick
pintas untuk mengakses data pada stik USB saya.ls -l /media/stick
akan menampilkan tautan yang sebenarnya, sementarals -lL /media/stick
akan menampilkan konten pada stik USB.Setelah beberapa penelitian yang lebih mendalam tentang perbedaan antara inner
-H
dan-L
, saya akhirnya menemukan artikel yang bagus tentang hal ini di blog Dangkal Pikiran (bahkan menampilkan beberapa trik skrip shell rapi untuk kesenangan Anda!)Ini menunjukkan perbedaan halus antara dua opsi (jauh lebih baik daripada manual asli!) Sebagai berikut:
-H
- hanya dereferensi tautan-tautan yang secara eksplisit disebutkan di baris perintah-L
- tautan dereferensi meskipun tidak disebutkan pada baris perintah(Ketika keduanya digunakan dengan tugas sehari-hari yang sederhana , seharusnya tidak ada perbedaan dalam output secara umum.)
Selain itu: Jika Anda lebih suka mengingat bentuk panjang (
--option
), kemungkinan besar tidak rumit untuk dihafal--dereference
daripada monster yang terlalu panjang--dereference-command-line-symlink-to-dir
.sumber
akan melakukannya atau
Namun, perilaku itu seharusnya tidak berbeda dengan dan tanpa
-l
. Apakah Anda punya alias untukls
?sumber
ls
bendera itu gila.-l
membuat-H
default ke mati, seperti halnya-F
. Lihat coreutils - File mana yang terdaftar .ls='ls -F'
alias sebenarnya.