Cara mendapatkan daftar nama file di baris yang berbeda

116

Saya ingin mendapatkan daftar semua file dalam direktori, seperti dengan ls, sehingga setiap nama file akan berada di baris terpisah, tanpa detail tambahan yang diberikan oleh ls -l. Saya melihat ls --helpdan tidak menemukan solusi. Saya mencoba melakukan

ls -l | cut --fields=9 -d" "

tetapi lstidak menggunakan jumlah spasi tetap antar kolom. Ada ide tentang bagaimana melakukan ini, lebih disukai dalam satu baris?

Amir Rachum
sumber

Jawaban:

259

ls -1

Itu adalah angka, tidak kecil L.

Šimon Tóth
sumber
5
saya melihat ini di dokumentasi: cross -x, koma -m, horizontal -x, long -l, single-column -1, verbose -l, vertical -C Saya tidak yakin bagaimana mereka menemukan beberapa di antaranya.
Alexander Taylor
23

ls -1. Dari bantuan:

-1 daftar satu file per baris

Berfungsi pada cygwin dan FreeBSD, jadi mungkin tidak terlalu spesifik untuk GNU.

jhwist
sumber
Bekerja di Ubuntu juga. Terima kasih
Yonatan Simson
12

solusi tanpa pipa :-)

 ls --format single-column

Perhatikan bahwa opsi panjang hanya didukung pada GNU coreutils di mana BSD ls hanya mendukung argumen pendek-1

rene
sumber
6

Mungkin:

ls | awk '{print $NF}'
Eelvex
sumber
catatan: nama file dengan spasi seperti "apel dan pir.jpg" akan berubah menjadi "pears.jpg"
oknate
4

ls | cat ... atau mungkin, ls -1

Johan Kotlinski
sumber
4
Harap hindari penggunaan kucing yang tidak berguna :)
jhwist
3
cattidak berguna dalam hal ini. Ini memformat output lsdalam satu kolom seperti yang diminta OP.
Felix Eve
3

Gunakan perintah sed untuk membuat daftar kolom tunggal

ls -l | sed 's/\(^[^0-9].\*[0-9]\*:[0-9]\*\) \(.*\)/\2/'
vara
sumber
ls -lmenghasilkan keluaran yang sama dengan seluruh jawaban Anda. Tidak yakin apa sedyang ditambahkan di sini ...
Felix Eve
3

Coba ini:

$ ls | xargs -n num

Berikut numadalah jumlah kolom yang ingin Anda daftarkan.

honeytechiebee
sumber
1

pertama Anda bisa menggunakan ini. itu akan menampilkan satu file per baris.

ls -l | sed 's /(.*) (. *) $ / \ 2 /'

atau Anda bisa menggunakannya

Temukan . -maxdepth 1 | sed 's /.///'

keduanya sama.

Manikandan Rajendran
sumber
Saya mendapatkan kesalahansed: -e expression #1, char 16: invalid reference \2 on `s' command's RHS
Felix Eve
0

Ini juga akan dilakukan

ls -l | awk '{print $NF}'
Vicky
sumber
1
Bagaimana ini secara praktis berbeda dari jawaban Eelvex ?
Semua Pekerja Penting
0

Ini juga berfungsi: echo -e "\ n $ (ls)"

Anshul Ayushya
sumber