The ls perintah daftar file pada sistem POSIX. Ini adalah perintah sederhana, sering kali diremehkan, bukan pada apa yang dapat dilakukannya (karena ia benar-benar hanya melakukan satu hal), tetapi pada bagaimana Anda dapat mengoptimalkan penggunaannya.
Dari 10 perintah terminal yang paling penting untuk diketahui, ls . yang sederhana perintah ada di tiga besar, karena ls tidak hanya daftar file, ini memberi tahu Anda informasi penting tentang mereka. Ini memberi tahu Anda hal-hal seperti siapa yang memiliki file atau direktori, kapan setiap file hilang atau diubah, dan bahkan jenis file apa itu. Lalu ada fungsi insidentalnya untuk memberi Anda gambaran tentang di mana Anda berada, objek terdekat apa yang tergeletak di sekitar, dan apa yang dapat Anda lakukan dengannya.
Jika pengalaman Anda dengan ls terbatas pada apa pun alias distribusi Anda di .bashrc , maka Anda mungkin ketinggalan.
GNU atau BSD?
Sebelum melihat kekuatan tersembunyi ls , Anda harus menentukan ls . mana yang perintah yang Anda jalankan. Dua versi yang paling populer adalah versi GNU, termasuk dalam GNU coreutils paket, dan versi BSD. Jika Anda menjalankan Linux, maka Anda mungkin memiliki ls diinstal. Jika Anda menjalankan BSD atau MacOS, maka Anda memiliki versi BSD. Ada perbedaan, yang menjadi alasan artikel ini.
Anda dapat mengetahui versi mana yang ada di komputer Anda dengan --versi pilihan:
$ ls --version
Jika ini mengembalikan informasi tentang GNU coreutils, maka Anda memiliki versi GNU. Jika mengembalikan kesalahan, Anda mungkin menjalankan versi BSD (jalankan man ls | head untuk memastikannya).
Anda juga harus menyelidiki preset apa yang mungkin dimiliki distribusi Anda. Penyesuaian terhadap perintah terminal sering ditempatkan di $HOME/.bashrc atau $HOME/.bash_aliases atau $HOME/.profile , dan mereka diselesaikan dengan aliasing ls ke ls . yang lebih kompleks memerintah. Misalnya:
alias ls='ls --color'
Prasetel yang disediakan oleh distribusi sangat membantu, tetapi membuat sulit untuk membedakan apa yang ls melakukannya sendiri dan apa yang disediakan oleh opsi tambahannya. Jika Anda ingin menjalankan ls dan bukan alias, Anda dapat "melarikan diri" dari perintah dengan garis miring terbalik:
$ \ls
Klasifikasi
Jalankan sendiri, ls cukup daftarkan file dalam kolom sebanyak mungkin yang dapat dimasukkan ke dalam terminal Anda:
$ ls ~/example
bunko jdk-10.0.2
chapterize otf2ttf.ff
despacer overtar.sh
estimate.sh pandoc-2.7.1
fop-2.3 safe_yaml
games tt
Ini adalah informasi yang berguna, tetapi semua file tersebut pada dasarnya terlihat sama tanpa kemudahan ikon untuk menyampaikan dengan cepat mana direktori, atau file teks, atau gambar, dan seterusnya.
Gunakan -F (atau --klasifikasi pada GNU) untuk menunjukkan indikator setelah setiap entri yang mengidentifikasi jenis file itu:
$ ls ~/example
bunko jdk-10.0.2/
chapterize* otf2ttf.ff*
despacer* overtar.sh*
estimate.sh pandoc@
fop-2.3/ pandoc-2.7.1/
games/ tt*
Dengan opsi ini, item yang terdaftar di terminal Anda diklasifikasikan menurut jenis file menggunakan singkatan ini:
- Sebuah garis miring (/ ) menunjukkan direktori (atau "folder").
- Sebuah tanda bintang (* ) menunjukkan file yang dapat dieksekusi. Ini termasuk file biner (kode yang dikompilasi) serta skrip (file teks yang memiliki izin yang dapat dieksekusi).
- Tanda di (@ ) menunjukkan tautan simbolis (atau "alias").
- Tanda sama dengan (= ) menunjukkan soket.
- Pada BSD, tanda persen (% ) menunjukkan whiteout (metode penghapusan file pada sistem file tertentu).
- Pada GNU, kurung sudut (> ) menunjukkan sebuah pintu (komunikasi antar-proses di Illumos dan Solaris).
- Bilah vertikal (| ) menunjukkan FIFO.
Versi yang lebih sederhana dari opsi ini adalah -p , yang hanya membedakan file dari direktori.
Daftar panjang
Mendapatkan "daftar panjang" dari ls sangat umum sehingga banyak distribusi alias ll ke ls -l . Formulir daftar panjang menyediakan banyak atribut file penting, seperti izin, pengguna yang memiliki setiap file, grup tempat file tersebut berada, ukuran file dalam byte, dan tanggal terakhir file diubah:
$ ls -l
-rwxrwx---. 1 seth users 455 Mar 2 2017 estimate.sh
-rwxrwxr-x. 1 seth users 662 Apr 29 22:27 factorial
-rwxrwx---. 1 seth users 20697793 Jun 29 2018 fop-2.3-bin.tar.gz
-rwxrwxr-x. 1 seth users 6210 May 22 10:22 geteltorito
-rwxrwx---. 1 seth users 177 Nov 12 2018 html4mutt.sh
[...]
Jika Anda tidak berpikir dalam byte, tambahkan -h bendera (atau --manusia di GNU) untuk menerjemahkan ukuran file ke notasi yang lebih ramah manusia:
$ ls --human
-rwxrwx---. 1 seth users 455 Mar 2 2017 estimate.sh
-rwxrwxr-x. 1 seth seth 662 Apr 29 22:27 factorial
-rwxrwx---. 1 seth users 20M Jun 29 2018 fop-2.3-bin.tar.gz
-rwxrwxr-x. 1 seth seth 6.1K May 22 10:22 geteltorito
-rwxrwx---. 1 seth users 177 Nov 12 2018 html4mutt.sh
Anda dapat melihat sedikit lebih sedikit informasi dengan hanya menampilkan kolom pemilik dengan -o atau hanya kolom grup dengan -g :
$ ls -o
-rwxrwx---. 1 seth 455 Mar 2 2017 estimate.sh
-rwxrwxr-x. 1 seth 662 Apr 29 22:27 factorial
-rwxrwx---. 1 seth 20M Jun 29 2018 fop-2.3-bin.tar.gz
-rwxrwxr-x. 1 seth 6.1K May 22 10:22 geteltorito
-rwxrwx---. 1 seth 177 Nov 12 2018 html4mutt.sh
Gabungkan kedua opsi untuk tidak menampilkan keduanya.
Format waktu dan tanggal
Format daftar panjang ls biasanya terlihat seperti ini:
-rwxrwx---. 1 seth users 455 Mar 2 2017 estimate.sh
-rwxrwxr-x. 1 seth users 662 Apr 29 22:27 factorial
-rwxrwx---. 1 seth users 20697793 Jun 29 2018 fop-2.3-bin.tar.gz
-rwxrwxr-x. 1 seth users 6210 May 22 10:22 geteltorito
-rwxrwx---. 1 seth users 177 Nov 12 2018 html4mutt.sh
Nama-nama bulan tidak mudah untuk diurutkan, baik secara komputasi atau (tergantung pada apakah otak Anda cenderung lebih memilih string atau bilangan bulat) dengan pengenalan. Anda dapat mengubah format cap waktu dengan --time-style opsi ditambah nama format. Format yang tersedia adalah:
- full-iso (1970-01-01 21:12:00)
- long-iso (1970-01-01 21:12)
- iso (01-01 21:12)
- lokal (menggunakan setelan lokal Anda)
- posix-STYLE (ganti STYLE dengan definisi lokal)
Anda juga dapat membuat gaya khusus menggunakan notasi formal tanggal perintah.
Urutkan menurut waktu
Biasanya, ls perintah mengurutkan berdasarkan abjad. Anda dapat mengurutkannya berdasarkan file mana yang terakhir diubah (yang terbaru dicantumkan terlebih dahulu) dengan -t pilihan.
Misalnya:
$ touch foo bar baz
$ ls
bar baz foo
$ touch foo
$ ls -t
foo bar baz
Jenis daftar
Keluaran standar ls menyeimbangkan keterbacaan dengan efisiensi ruang, tetapi terkadang Anda ingin daftar file Anda dalam pengaturan tertentu.
Untuk daftar file yang dipisahkan koma, gunakan -m :
ls -m ~/example
bar, baz, foo
Untuk memaksa satu file per baris, gunakan -1 option (itu yang nomor satu, bukan huruf L kecil):
$ ls -1 ~/bin/
bar
baz
foo
Untuk mengurutkan entri menurut ekstensi file dan bukan nama file, gunakan -X (itu huruf kapital X):
$ ls
bar.xfc baz.txt foo.asc
$ ls -X
foo.asc baz.txt bar.xfc
Sembunyikan kekacauan
Ada beberapa entri di beberapa ls daftar yang mungkin tidak Anda pedulikan. Misalnya, metakarakter . dan .. mewakili "di sini" dan "kembali satu tingkat," masing-masing. Jika Anda terbiasa bernavigasi di terminal, Anda mungkin sudah tahu bahwa setiap direktori mengacu pada dirinya sendiri sebagai . dan ke induknya sebagai .. , jadi Anda tidak perlu selalu diingatkan saat menggunakan -a opsi untuk menampilkan file tersembunyi.
Untuk menampilkan hampir semua file tersembunyi (. dan .. dikecualikan), gunakan -A pilihan:
$ ls -a
.
..
.android
.atom
.bash_aliases
[...]
$ ls -A
.android
.atom
.bash_aliases
[...]
Dengan banyak alat Unix yang bagus, ada tradisi menyimpan file cadangan dengan menambahkan beberapa karakter khusus ke nama file yang disimpan. Misalnya, di Vim, cadangan disimpan dengan ~ karakter ditambahkan ke nama.
Jenis file cadangan ini telah menyelamatkan saya dari kesalahan bodoh pada beberapa kesempatan, tetapi setelah bertahun-tahun menikmati rasa aman yang mereka berikan, saya tidak merasa perlu memiliki bukti visual bahwa mereka ada. Saya memercayai aplikasi Linux untuk membuat file cadangan (jika mereka mengklaim melakukannya), dan saya senang untuk percaya bahwa mereka ada.
Untuk menyembunyikan file cadangan dari tampilan, gunakan -B atau --ignore-backups untuk menyembunyikan format cadangan umum (opsi ini tidak tersedia di BSD ls ):
$ ls
bar.xfc baz.txt foo.asc~ foo.asc
$ ls -B
bar.xfc baz.txt foo.asc
Tentu saja, file cadangan masih ada; itu hanya disaring sehingga Anda tidak perlu melihatnya.
GNU Emacs menyimpan file cadangan (kecuali dikonfigurasi lain) dengan karakter hash (# ) di awal dan akhir nama file (#file# ). Aplikasi lain mungkin menggunakan gaya yang berbeda. Tidak masalah pola apa yang digunakan, karena Anda dapat membuat pengecualian sendiri dengan --sembunyikan pilihan:
$ ls
bar.xfc baz.txt #foo.asc# foo.asc
$ ls --hide="#*#"
bar.xfc baz.txt foo.asc
Mencantumkan direktori dengan rekursi
Isi direktori tidak terdaftar dengan ls perintah kecuali Anda menjalankan ls pada direktori itu secara khusus:
$ ls -F
example/ quux* xyz.txt
$ ls -R
quux xyz.txt
./example:
bar.xfc baz.txt #foo.asc# foo.asc
Jadikan permanen dengan alias
ls command mungkin adalah perintah yang paling sering digunakan selama sesi shell tertentu. Ini adalah mata dan telinga Anda, memberi Anda konteks dan mengonfirmasi hasil perintah. Meskipun memiliki banyak pilihan berguna, bagian dari keindahan ls adalah singkatnya:dua karakter dan tombol Kembali, dan Anda tahu persis di mana Anda berada dan apa yang ada di dekatnya. Jika Anda harus berhenti untuk memikirkan (apalagi mengetik) beberapa opsi yang berbeda, itu menjadi kurang nyaman, jadi biasanya opsi yang paling berguna pun akan ditinggalkan.
Solusinya adalah dengan membuat alias ls . Anda perintah sehingga ketika Anda menggunakannya, Anda mendapatkan informasi yang paling Anda pedulikan.
Untuk membuat alias untuk perintah di shell Bash, buat file di direktori home Anda bernama .bash_aliases (Anda harus menyertakan titik di awal). Dalam file ini, daftarkan perintah yang ingin Anda buat aliasnya dan kemudian alias yang ingin Anda buat. Misalnya:
alias ls='ls -A -F -B --human --color'
Baris ini menyebabkan shell Bash Anda menafsirkan ls perintah sebagai ls -A -F -B --human --color .
Anda tidak terbatas pada mendefinisikan ulang perintah yang ada. Anda dapat membuat alias Anda sendiri:
alias ll='ls -l'
alias la='ls -A'
alias lh='ls -h'
Agar alias berfungsi, shell Anda harus mengetahui bahwa .bash_aliases file konfigurasi ada. Buka .bashrc file di editor (atau buat, jika tidak ada), dan sertakan blok kode ini:
if [ -e $HOME/.bash_aliases ]; then
source $HOME/.bash_aliases
fi
Setiap kali .bashrc dimuat (yaitu setiap kali shell Bash baru diluncurkan), Bash akan memuat .bash_aliases ke dalam lingkungan Anda. Anda dapat menutup dan meluncurkan kembali sesi Bash Anda atau memaksanya untuk melakukannya sekarang:
$ source ~/.bashrc
Jika Anda lupa apakah Anda telah membuat alias suatu perintah, yang perintah memberitahu Anda:
$ which ls
alias ls='ls -A -F -B --human --color'
/usr/bin/ls
Jika Anda telah membuat alias ls perintah untuk dirinya sendiri dengan opsi, Anda dapat mengganti alias Anda sendiri kapan saja dengan mengawali ls dengan garis miring terbalik. Misalnya, dalam contoh alias, file cadangan disembunyikan menggunakan -B opsi, yang berarti tidak ada cara untuk mencadangkan file dengan ls memerintah. Ganti alias untuk melihat file cadangan:
$ ls
bar baz foo
$ \ls
bar baz baz~ foo
Lakukan satu hal dan lakukan dengan baik
ls command memiliki sejumlah opsi yang mengejutkan, banyak di antaranya adalah niche atau sangat bergantung pada terminal yang Anda gunakan. Lihat info ls pada sistem GNU atau man ls pada sistem GNU atau BSD untuk opsi lainnya.
Anda mungkin merasa aneh bahwa sistem yang terkenal dengan premis bahwa setiap alat "melakukan satu hal dan melakukannya dengan baik" akan membebani perintah paling umum dengan 50 opsi. Tapi l hanya melakukan satu hal:daftar file. Dan dengan 50 opsi untuk memungkinkan Anda mengontrol cara Anda menerima daftar itu, ls melakukan satu pekerjaan dengan sangat, sangat baik.