Mengapa ada ruang ekstra ketika saya mengetik "ls" di direktori Desktop?

27

Hanya ingin tahu, saya bertanya-tanya apakah ada alasan untuk ruang ekstra ketika saya mengetik lsdi direktori Desktop. Membandingkan...

~/Desktop$ ls
 file1 file2 file3

...untuk...

~/Documents$ ls
file1 file2 file3

Perhatikan bahwa ketika saya mengetik lsdi Desktop saya mendapatkan ruang tambahan di awal baris (bukan bagian dari nama file). Saya tidak dapat menemukan lokasi contoh lain di mana saya mendapatkan ruang tambahan ini di awal baris. Apakah ada orang lain yang mendapatkan ini? Apakah ada alasan?

NB: Saya menggunakan rilis Ubuntu Bionic Beaver LTS dan terminal default yang disertakan.

Bart
sumber
Saya tidak punya ini. Jika saya membuat file hanya dengan spasi sebagai nama ( touch " ") saya punya dua spasi di depan.
pLumo
6
Jalankan ls -lasebaliknya atau find -type f -printf "file: -%P-\n"dan berikan output. Kemungkinan ada file dengan karakter yang tidak dapat dicetak. Pewarnaan file juga berpotensi memengaruhinya, jadi coba \lsatau dirperintah
Sergiy Kolodyazhnyy
Saya tidak dapat melihat file dengan karakter yang tidak dapat dicetak, ketika saya mencoba 2 saran pertama Anda. Saya masih memiliki ruang ketika saya mencoba tetapi tidak ketika saya menggunakan dir ...
Bart
35
Sajikan hasil aktual Anda .
Lightness Races dengan Monica

Jawaban:

85

Ruang tambahan muncul ketika Anda memiliki nama file di direktori Anda yang membutuhkannya '(mis. Nama file dengan spasi atau karakter khusus lainnya).

~/mytmp$ ls
 a           'file(abc)'         proyecto3.csv   test         Test.sh
 b           'file(ab,c?).mp4'   rootfile        Test1.txt    Test.zip
 F26         'file(abc?).mp4'    scr             Test2.test   vowels
 Feb          guess              script          Test2.txt
'Feb 26 xx'   hw                 something       test.rar

Setelah menghapus file 'aneh' saya dapatkan:

~/mytmp$ ls
a    guess  proyecto3.csv  script     test        Test2.txt   Test.sh
b    hw     rootfile       something  Test1.txt   test.rar    Test.zip
F26  loop   scr            speak      Test2.test  testscript  vowels
muclux
sumber
Terima kasih atas penjelasannya - ini kedengarannya benar bagi saya. Apa yang melemparkan saya adalah bahwa ruang ekstra di awal baris tidak harus di depan file yang memiliki karakter khusus. Tapi saya kira ini dilakukan untuk membuat presentasi lebih jelas di terminal. Terima kasih lagi
Bart
53

Aku cukup yakin file1 file2 file3tidak apa tepatnya ditampilkan pada layar Anda. Anda menghilangkan informasi berharga (nama file sebenarnya) yang mungkin dengan mudah relevan.

Asumsi saya adalah bahwa Anda memiliki nama file yang berisi spasi atau karakter khusus lainnya.

Versi terbaru dari coreutils lsmengutip nama file tersebut, biasanya dalam tanda kutip tunggal. Plus, jika ada setidaknya satu file yang memerlukan kutipan seperti itu, ia menambahkan ruang di depan semua nama file lain sehingga mereka sejajar "dengan baik" jika mereka kebetulan berada di bawah satu sama lain, yaitu, tanda kutip tunggal (apostrof) adalah diabaikan untuk penyelarasan.

Lihat --quoting-styledan -Ndi halaman manualls untuk detail lebih lanjut, dan bagian "Memformat nama file" di halaman info untuk detail lebih lanjut. Anda mungkin misalnya mempertimbangkan lsuntuk ls -N.

egmont
sumber