Yang terbaik yang bisa saya temukan melalui Google / man ls
adalah:
ls -l | grep -v '^total'
Apakah ada sesuatu yang saya lewatkan di bendera ls
?
Juga, mengapa ukuran total dalam kb, terlepas dari flag -h? menggaruk itu, sepertinya tidak, tidak yakin apa yang saya lihat saat itu.
ls -l | tail -n+2
, untuk selebihnya saya tidak punya jawaban.lsl
. Hanya 3 huruf;) oh dan ls -lh menunjukkan ukuran 1.2K.Jawaban:
Melihat dalam kode sumber
coreutils
, saya menemukan bahwatotal
akan selalu ditampilkan ketika menggunakan-l
opsi pada direktori .Menggunakan
-d
opsi untuk membuat daftar entri alih-alih menyembunyikan isi direktoritotal
. Tetapi jika Anda menjalankannya tanpa argumen (atau pada direktori), itu hanya akan menunjukkan direktori dan bukan isinya. Karena itu, Anda memerlukan wildcard.*
cocok dengan semua file dan.*
cocok dengan file tersembunyi juga (yang sesuai dengan-a
opsi):Adapun
-h
opsi, itu berfungsi untuk saya. 1118360 byte muncul sebagai 1.1M. File yang lebih kecil dari 1024 muncul dalam byte.sumber
ls
halaman manual ke surat atau mempertimbangkan ini:ls /
dapat diartikan sebagai "daftar entri/
jika itu adalah file atau isi direktori/
jika itu adalah direktori". Menggunakan-d
menghapus kondisi terakhir dan akan selalu mencetak entri bukan isi direktori. Ini berlaku tidak peduli apakah path adalah file atau direktori.Menggunakan wildcard untuk menghindari
ls
menjalankan daftar direktori tidak optimal, karena mencegah Anda menggunakanls
opsi seperti--almost-all
.Seperti saran Enzotib , cara paling sederhana untuk menghapusnya adalah menyalurkannya
tail
untuk memotong baris pertama. Namun,ls
akan mendeteksi bahwa outputnya adalah pipa daripada interaktif, dan mengubah standarnya dengan cara yang tidak diinginkan. Oleh karena itu, untuk membuatnya kuat, Anda juga harus menambahkan beberapa opsi:--color=always
: terus menunjukkan warna--hide-control-chars
: cetak?
nama file menggantikan karakter kontrol yang dapat mengacaukan output konsolSaya memiliki skrip
~/bin/l
(Anda juga dapat menggunakan alias Bash di~/.bash_aliases
):Anda juga dapat menambahkan
ls
opsi lain yang Anda inginkan secara default, misalnya--group-directories-first --time-style='+%FT%T.%N%:::z' --indicator-style=slash
.sumber
ls -l *
Akan memberi Anda isi folder "biasanya dinamai" tanpa
total
. Itu mungkin cocok untuk kebutuhan Anda. Sayangnya, itu tidak akan memberi Andadot
file awalan. Jika Anda menggunakanls -l * .*
Anda akan mendapatkan kekacauan karena linux akan menavigasi pohon.Perhatikan awalan titik bisa berarti folder atau dengan wildcard itu berarti folder di atas sehingga tidak membantu Anda untuk memilih file biasa yang diawali titik. Ini tampaknya menjadi keputusan desain yang tidak menguntungkan.
sumber
Catatan:
Berikut ini tidak berfungsi jika Anda memiliki file bernama "total ...."
sumber