Bagaimana mendapatkan ls ke daftar direktori dengan garis miring ke depan?


12

Kulitku adalah bash. Bagaimana saya bisa mendapatkan output lsuntuk menampilkan direktori dengan garis miring ke depan? Ketika saya melakukannya lsdi tcshdalamnya memberikan output yang diinginkan. Bagaimana saya bisa membuat ini terjadi bashtanpa menggunakan argumen?

misalnya.

bin/
lib/
src/
file1.txt
file2.txt

7
Shell Anda tidak relevan di sini ... man lslalu gulir ke bawah ke-p
don_crissti

apakah itu -Fbenderanya? Saya tidak pernah menggunakannya, jadi saya tidak dapat mengingat ...
Jeff Schaller

1
Dengan garis miring terbalik sesuai judul Anda, atau dengan garis miring tambahan (yang lebih masuk akal) sesuai contoh Anda?
Gilles 'SO- stop being evil'

@don_crissti Lihat edit saya untuk pertanyaan.
CJ7

@ CJ7 - apa itu type lsoutput? Mungkin alias?
don_crissti

Jawaban:


12

Solusi paling sederhana (seperti yang sudah diberikan oleh @don_crissti dalam komentar) adalah:

ls -p

Anda bisa mendapatkan efek serupa dengan:

ls -F

Tetapi itu akan menambahkan beberapa indikator lain juga:

Tambahkan karakter ke setiap nama file yang menunjukkan jenis file. Juga, untuk file biasa yang dapat dieksekusi, tambahkan *. Indikator jenis file adalah /untuk direktori, @untuk tautan simbolik, |untuk FIFO, =untuk soket, >untuk pintu, dan tidak untuk file biasa.


Tentu saja, Anda dapat membuat string lsmengeksekusi ls -ppada baris perintah dengan alias:

alias ls='ls -p'

Itu temporal dan bisa dihapus dengan unalias ls.
Mungkin Anda tcshmemiliki alias aktif di tempatnya.

Yang dapat Anda lakukan dengan menempatkan perintah di ~/.bashrcatau ~/.bash_aliases.


Bagian terakhir itu menarik perhatianku. Saya belum pernah melihat atau mendengar tentang ~/.bash_aliasessebelumnya; hanya ~/.bash_profiledan / atau ~.bashrc. Apakah itu benar?
Suara

1
@ tjt263 Ini adalah praktik umum untuk menempatkan semua alias dalam file khusus yang bersumber dari bashrc . Isi dapat bervariasi tergantung pada kebutuhan Anda .

Untuk menjaga warna:alias ls='ls --color=auto -p'
mkczyk

2

Anda dapat menggunakan -F, mis

$ /bin/ls -F
-/                                 diesel_folks                 grub                     presidents             user_mailer/
0/                                 dmStaffing/                  HJJJH/                   prime_scenarios   
...
# I'm using /bin/ls to make sure I run my system ls 
# (I actually have it aliased to add options automatically normally)
#
# Just read about your no argument requirement
# So you too could alias it, i.e.

alias ls='ls -F'

# Put it in your `.bashrc` or `.bash_aliases` file

Apakah Anda tahu mengapa tcshmemberi saya hasil yang diinginkan dan bashtidak?
CJ7

1
@ CJ7 Karena tcsh dan bash menggunakan file konfigurasi yang berbeda (dengan sintaks yang berbeda). Anda mungkin sudah memiliki alias serupa di blog Anda .cshrc.
Gilles 'SO- stop being evil'

Saya mencoba membuat .bashrcfile di direktori home saya tetapi tidak berhasil
CJ7

@ CJ7, apakah Anda memulai ulang shell Anda setelah melakukan perubahan itu?
Jochem Schulenklopper

0

Antara

   ls --classify

Atau:

   ls --indicator-style=slash

Penjelasan

   -F, --classify
          append indicator (one of */=>@|) to entries

   -p, --indicator-style=slash
          append / indicator to directories

Jawaban lainnya kurang lebih mencakup hal ini, tetapi saya lebih suka opsi panjang gaya GNU daripada opsi pendek gaya BSD di jawaban Stack Overflow karena lebih jelas dan dapat dipelajari / "diingat" / "dapat diinternalisasi".

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.