itu karena -datang sebelumnya dketika menggunakansort
Nifle
4
Head unix head yang lama (yang berasal dari zaman pra-GUI) digunakan untuk mengubah nama folder menjadi huruf besar dan membuat nama file polos tanpa modal untuk mendapatkan hasil itu secara otomatis.
JRobert
Pertanyaan yang berguna! Mungkin sudah waktunya untuk mengubah jawaban yang diterima menjadi yang lebih sederhana dan tidak merusak warna terminal?
ippi
Cobals -lh --group-directories-first
Diogo
Jawaban:
28
Perintah berikut akan daftar direktori pertama, file biasa kedua, dan tautan ketiga.
ls -la | grep "^d" && ls -la | grep "^-" && ls -la | grep "^l"
Juga, akan sangat masuk akal untuk membuat alias untuk perintah ini untuk menyimpan penekanan tombol.
Sunting:
Jika Anda ingin direktori terlebih dahulu, dan kemudian semua yang bukan direktori kedua, gunakan ini:
Perintah ini tidak mencantumkan semua jika ada, misalnya, soket atau FIFO dalam folder
Studer
1
Versi yang diedit itu masih harus bekerja dengan tipe lain. Grep pertama mengatakan semua yang dimulai dengan 'd', dan yang kedua mengatakan semua yang tidak dimulai dengan 'd'. Tentunya semuanya dimulai dengan iklan atau tidak, kan?
Ry4an Brase
1
@ Mark - Mengapa tidak hanya melakukan: ls -la | grep "^d" && ls -la | grep "^-" && ls -la | grep -v -E "^d|^-|^total"?
FCTW
1
Untuk menjadikan @ FCTW's perintah OSX alias, tambahkan ini ke ~ / .profile Anda:alias la="ls -la | grep \"^d\" && ls -la | grep \"^-\" && ls -la | grep -E \"^d|^-\" -v | grep -v \"^total\""
aliteralmind
2
Saya telah menemukan notasi yang berfungsi lebih singkat: ls -la|grep ^d;ls -la|grep -v ^d(tanda kutip tidak diperlukan dan diganti &&dengan ;). Pilihan lain adalah untuk memperkenalkan variabel dan kemudian mengevaluasinya: a="ls -la|grep ^d";eval $a;eval $a -v. Dapat bermanfaat untuk menghindari pengulangan ketika lebih banyak opsi ditentukan untuk ls/ grep. Ada juga ls -la --group-directories-firstpilihan itu, namun imo tersingkat adalahls -la|sort
Steven Pribilinskiy
205
Saya sangat menyukai * nix dan suka melihat daya cipta yang masuk ke beberapa balasan ini ...
Milik saya hampir tidak seperti di GNU Linux:
alias ls='ls --color -h --group-directories-first'
Mengingat bahwa saya lebih nyaman dengan aplikasi linux CLI saya, saya juga cenderung memperbarui coreutils di OSX:
brew install coreutils
alias ls='/usr/local/bin/gls --color -h --group-directories-first'
sayangnya, ini tidak berfungsi pada terminal osx, karena - opsi tidak tersedia.
MEM
7
kembali cinta: Apakah itu sarkasme? Jika demikian, saya setuju.
allyourcode
4
Tujuan dari alias ls adalah untuk mendefinisikan elemen konfigurasi yang ingin saya gunakan 90% dari waktu. Kurang penekanan tombol untuk mencapai output yang diinginkan. Jika Anda pernah ingin memiliki output ls asli Anda selalu / bin / ls.
jonathanserafini
4
@MEM Jika Anda menggunakan OS X dan Anda menikmati menggunakan Terminal, Anda harus brew install bash Kemudian, ini akan berhasil! :)
Andrew Ashbacher
5
Pendapat saya: ini seharusnya jawaban yang diterima karena mencantumkan opsi baris perintah untuk mencapai tujuan dengan tepat, alih-alih kumpulan grep yang berbelit-belit, dll.
Ya, secara default. Anda juga dapat menggunakan coreutils secara default dengan PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH".
benesch
7
Ada hal-hal tertentu yang ingin saya lihat dalam daftar direktori, dan sejauh ini tidak ada jawaban di sini yang memenuhi semua persyaratan di bawah ini. Persyaratan saya untuk daftar direktori:
Direktori dan file diurutkan berdasarkan abjad
Direktori terdaftar terlebih dahulu
Tautan simbolik (symlink) diurutkan seperti file
Penyortiran tidak sensitif huruf besar-kecil
Penyortiran mengabaikan semua karakter non-alfa terkemuka dalam nama file
Cantuman termasuk jumlah total direktori (tidak termasuk ./dan ../), file, dan tautan
Daftar termasuk ukuran total (penggunaan disk) dari direktori dan file
Daftarnya harus terlihat sama di Linux dan Windows (Git Bash shell) - ini adalah yang paling sulit untuk dilakukan karena opsi yang nyaman seperti --group-directories-firsttidak bekerja di Git Bash untuk Windows
Setelah banyak peretasan, saya akhirnya menemukan satu-liner (meskipun garis yang sangat panjang ;-)) yang saya puas. Saya telah menugaskan ini ke alias bernama 'dir':
ls -dlF --color *.*| head -n2 && ls -AlF| LC_ALL=C grep "^d"|
LC_ALL=C sort -k 9df&& ls -AlF| LC_ALL=C grep "^[l-]"|
LC_ALL=C sort -k 9df&& echo -e `find -maxdepth 1 -type d ! -name . |
wc -l`Dir\(s\) `du -hs | cut -f 1`\\t\\t`find -maxdepth 1 -type f |
wc -l`File\(s\) `find -maxdepth 1 -type f -print0 | du -ch --files0-from=- |
tail -n 1 | cut -f 1`\\t\\t`find -maxdepth 1 -type l | wc -l`Link\(s\)
Agar lebih mudah dikelola, saya datang dengan perintah terpisah untuk menampilkan setiap segmen dari daftar direktori sesuai dengan keinginan saya, lalu menggabungkannya menggunakan &&operator.
ls -dlF --color * .* | head -n2- Ekstrak ./dan ../. Kami tidak ingin melewati ini sortkarena sudah dalam urutan yang benar, dan mengurutkannya dapat ../didaftarkan terlebih dahulu. The -dpilihan adalah untuk menyingkirkan "total" line; Saya ingin menambahkan -Funtuk memperlihatkan trailing slash untuk direktori (ini juga akan menandai symlink dengan "@" ketika Anda melakukan hal biasa ls -F).
ls -AlF | LC_ALL=C grep "^d" | LC_ALL=C sort -k 9df- Ekstrak direktori dan urutkan berdasarkan nama file (kolom ke-9), abaikan karakter non-alpha / spasi ( dopsi) dan huruf besar-kecil ( fopsi). The ls -Atidak termasuk opsi ./dan ../dari daftar karena kita sudah diekstrak dalam langkah sebelumnya. Saya cenderung untuk awalan semua grepdan sortperintah dengan LC_ALL=Creset lokal sehingga (1) output konsisten di seluruh shell Unix, dan (2) Anda kadang-kadang dapat melihat kinerja lebih cepat karena tidak lagi memiliki overhead karakter UTF-8 yang diatur ke berurusan dengan.
ls -AlF | LC_ALL=C grep "^[l-]" | LC_ALL=C sort -k 9df - Ini mirip dengan langkah di atas, tapi kali ini kami menyortir file dan symlink.
find -maxdepth 1 -type d ! -name . | wc -l- Dapatkan jumlah direktori, tidak termasuk ./dan ../.
find -maxdepth 1 -type f | wc -l - Dapatkan jumlah file.
find -maxdepth 1 -type l | wc -l - Dapatkan jumlah symlink.
du -hs | cut -f 1 - Ekstrak ukuran total semua subdirektori dalam format yang dapat dibaca manusia.
find -maxdepth 1 -type f -print0 | du -ch --files0-from=- | tail -n 1 | cut -f 1 - Ekstrak ukuran total semua file dalam format yang dapat dibaca manusia.
Satu kelemahan kecil adalah Anda tidak dapat memiliki daftar warna, karena karakter kontrol warna yang mengelilingi nama file membuat penyortiran terlalu tidak dapat diandalkan.
MEMPERBARUI
Alias di atas sangat lambat ketika dijalankan dari direktori root dari sistem file yang dalam, jadi saya telah memperbarui ke perintah yang lebih sederhana tetapi jauh lebih performant ini:
ls -AFoqv--color --group-directories-first | tail -n +2&& find -maxdepth 1-type f -printf '%s\n'| awk '{total+=$1} END {print total" bytes"}'
Karena versi baru dari Git Bash untuk Windows mendukung --group-directories-first, kami tidak lagi harus kembali aktif sort. Meskipun alias baru tidak menampilkan informasi sebanyak alias sebelumnya, keuntungan kinerja lebih dari sepadan. Sebagai kegembiraan, Anda juga mendapatkan warna!
Jawaban bagus! Tetapi ketika Anda berkata, "Setelah banyak peretasan, saya akhirnya menemukan satu kalimat ..." Ya, memang itu sebenarnya bukan "satu kalimat" dalam pengertian klasik. Mungkin masuk akal untuk mengambil logika itu dan membuatnya menjadi skrip shell mandiri dan menjalankannya atau menyebutnya sebagai alias.
JakeGould
@JakeGould Kamu cepat! Saya bahkan belum selesai membaca-baca jawaban saya dan Anda sudah selesai membacanya dan mengeluarkan komentar :). Ya, itu adalah kandidat utama untuk suatu fungsi, tapi saya terlalu malas pada saat itu, jadi masukkan saja ke file .bash_aliases saya. Di sisi lain, saya biasanya hanya menulis fungsi ketika saya tidak bisa melakukan sesuatu tanpa melewati parameter.
thdoan
@ 10basetom: Pertanyaan singkat: Bagaimana Anda mendapatkan warna berbeda untuk kolom di ls? Saya bisa mewarnai nama file dengan tipe file menggunakan ls --color, tapi saya tidak melihat cara untuk mendapatkan warna yang bermanfaat untuk kolom. Apa rahasianya
Ini adalah solusi IMO yang lebih bagus. Menggunakan beberapa proses dan pipa untuk melakukan penyortiran alih-alih perpipaan untuk menyortir tampaknya agak mundur. Terutama sejak ls- al|sort -k1 -rbekerja. Yang hilang hanyalah -rbendera.
brice
@Brice Hal yang mengganggu saya tentang 'sort' adalah itu ./dan ../tidak akan menjadi dua baris pertama, dalam urutan itu. Selain itu, saya setuju bahwa ini adalah solusi yang lebih efisien.
thdoan
Bagaimana cara mewarnai output?
Danijel
5
Untuk jawaban delerious010 , saya akan menambahkan bahwa jika Anda ingin memesan gaya lama:
LANG=C ls -la --group-directories-first
(atau gunakan LC_ALL atau LANGUAGE atau LC_COLLATE setel ke "C").
Ini akan memberikan sesuatu yang mirip dengan:
...
DIR
Dir
dir
.hidden
123
UC_FILE
Uc_file
lc_file
Meskipun, jika saya ingat dengan benar, file dot tersembunyi awalnya muncul di depan direktori.
Inilah fungsi untuk melakukan ini (bash atau zsh): Dan ... Saya tidak menyarankan ini adalah cara terbaik, tapi inilah yang saya buat dan saya gunakan saat ini:
berfungsi lss
{
# Menampilkan daftar direktori dengan direktori di bagian atas.
perintah ls --color = selalu $ @ | egrep '^ d | total'
perintah ls --color = selalu $ @ | egrep -v '^ d | total';
}
Hanya sebuah fyi ini tampaknya tidak berfungsi. Anda perlu menggunakan format daftar panjang ( ls -l) untuk memfilter menurut jenis file seperti itu. Juga, perintah ini akan memecah spasi (dalam bash). Anda perlu mengutip seperti ini: "$@"Jika Anda ingin menggunakan pendekatan ini, Anda dapat melakukan sesuatu seperti:function lss {local temp="$(command ls -l --color=always "$@")"; egrep --color=never '^d|total' <<<"$temp"; egrep --color=never -v '^d|total' <<<"$temp"}
Enam
2
ls -laX akan menampilkan direktori pertama dalam urutan abjad, tetapi akan mengacaukan daftar file.
Opsi panjang:
ls
-l # List--all
-X # Sort alphabetically by entry extension
Apa yang dilakukan ini? Di mana Anda belajar mengetiknya?
Tamara Wijsman
Yah OS pilihan saya adalah Debian Linux. Versi paket utas gnu core Debian ls mendukung opsi --show-directories-first ... ketika saya mulai menggunakan OSX, saya hanya mengambil semua file bash dot saya dari kotak Debian dan meletakkannya di direktori rumah saya ... Saya punya banyak bash_aliases yang pecah jadi ... Saat itulah aku harus mencari beberapa solusi untuk aliasku ...
Eddie B
Yang pertama agak berlebihan ... Tidak ada alasan untuk menyortir direktori karena ini adalah urutan yang perlu kita modifikasi, bukan direktori ... the 'ls -la | sort -r 'adalah yang benar-benar berfungsi. Pada dasarnya ini menyatakan ... 1) A) Temukan. -d 1 -type d (Mulai dari direktori ini, cari satu kedalaman direktori dan cari direktori saja) B) ls -la (daftar file semua atribut) C) Urutkan secara terbalik 2) Lakukan sebagai 1) cukup drop the find. ..tidak diperlukan ... Saya sebenarnya lebih suka solusi Studers '... :-)
Eddie B
1
TL; DR
alias ls='ls -lhF --color'
list_sorted(){
ls $*| grep "^d";
ls $*| grep "^-";
ls $*| grep -v -E "^d|^-|^total"}
alias ll=list_sorted
Penjelasan
Saya menggunakan kombinasi solusi yang disediakan dalam jawaban dan komentar di sini.
Default ls
Pertama-tama, saya menimpa perilaku default untuk ls:
-l: Selalu tampilkan daftar sebagai daftar vertikal satu dimensi
-h: Tampilkan ukuran file dengan cara yang dapat dibaca manusia (mis. 4.0K bukannya 4096)
-F: Menampilkan indikator seperti garis miring untuk direktori
alias ls='ls -lhF --color'
Diperpanjang ll
Selanjutnya, saya menulis fungsi yang berisi logika pengurutan. Untuk setiap lssaya melewati setiap argumen yang semula disahkan untuk itu. Itu memungkinkan saya menggunakan alias dari direktori kerja yang berbeda dari yang ingin saya daftarkan (yaitu ls -a ~).
Juga, setiap panggilan ke lsdisalurkan ke grepperintah. Di sini, penyortiran terjadi. ls -l | grep "^d"misalnya hanya mendaftar direktori. Jika direktori harus didaftar terlebih dahulu, ini harus didahulukan dalam fungsi juga. Selanjutnya adalah file.
Terakhir, saya menunjukkan semua yang bukan direktori atau file (atau baris yang menunjukkan ukuran total isi direktori). Ini dilakukan dengan menangkap directoy, entri file biasa dan total entri dan kemudian membalikkan hasilnya melalui -vargumen.
list_sorted(){# List directories
ls $*| grep "^d";# List regular files
ls $*| grep "^-";# List everything else (e.g. symbolic links)
ls $*| grep -v -E "^d|^-|^total"}
Akhirnya, saya alias fungsi ke perintah baru. Khususnya saya tidak ingin menimpa lskalau-kalau fungsi saya melanggar beberapa skenario. Maka saya ingin dapat menggunakan ls. Atau, Anda selalu dapat menjalankan perintah yang tidak disebutkan lsdengan memohon \ls.
alias ll=list_sorted
Catatan
Saya menggunakan ;bukannya &&sebagai pembatas untuk perintah. Jika tidak, seseorang tidak dapat membuat daftar isi direktori yang tidak mengandung direktori (perintah ls pertama bernilai false, sehingga tidak memungkinkan eksekusi perintah berikutnya karena ditambah dengan &&. ;Hindari itu.)
Ini adalah solusi skrip. Daftar hanya nama, tidak ada data inode, abjad, tidak peka huruf besar kecil, diformat ke dalam kolom. Meskipun itu baris-utama, bukan kolom utama seperti output default ls. Kolom menjadi sedikit berantakan jika ada nama file dengan> 26 karakter.
rm -f /tmp/lsout
ls -1p| grep /| sort -f >>/tmp/lsout
ls -1p| grep -v /| sort -f >>/tmp/lsout
IFS=$'\n' read -d ''-r -a lines </tmp/lsout
printf "%-24s %-24s %-24s\n""${lines[@]}"
Dan yang lainnya, dengan beberapa format tambahan.
-
datang sebelumnyad
ketika menggunakansort
ls -lh --group-directories-first
Jawaban:
Perintah berikut akan daftar direktori pertama, file biasa kedua, dan tautan ketiga.
ls -la | grep "^d" && ls -la | grep "^-" && ls -la | grep "^l"
Juga, akan sangat masuk akal untuk membuat alias untuk perintah ini untuk menyimpan penekanan tombol.
Sunting:
Jika Anda ingin direktori terlebih dahulu, dan kemudian semua yang bukan direktori kedua, gunakan ini:
ls -la | grep "^d" && ls -la | grep -v "^d"
sumber
ls -la | grep "^d" && ls -la | grep "^-" && ls -la | grep -v -E "^d|^-|^total"
?alias la="ls -la | grep \"^d\" && ls -la | grep \"^-\" && ls -la | grep -E \"^d|^-\" -v | grep -v \"^total\""
ls -la|grep ^d;ls -la|grep -v ^d
(tanda kutip tidak diperlukan dan diganti&&
dengan;
). Pilihan lain adalah untuk memperkenalkan variabel dan kemudian mengevaluasinya:a="ls -la|grep ^d";eval $a;eval $a -v
. Dapat bermanfaat untuk menghindari pengulangan ketika lebih banyak opsi ditentukan untukls
/grep
. Ada jugals -la --group-directories-first
pilihan itu, namun imo tersingkat adalahls -la|sort
Saya sangat menyukai * nix dan suka melihat daya cipta yang masuk ke beberapa balasan ini ...
Milik saya hampir tidak seperti di GNU Linux:
Mengingat bahwa saya lebih nyaman dengan aplikasi linux CLI saya, saya juga cenderung memperbarui coreutils di OSX:
sumber
brew install bash
Kemudian, ini akan berhasil! :)Untuk pengguna Mac coreutils :
Dengan asumsi sistem Anda siap untuk homebrew :
sumber
gls
agak. Baik?PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
.Ada hal-hal tertentu yang ingin saya lihat dalam daftar direktori, dan sejauh ini tidak ada jawaban di sini yang memenuhi semua persyaratan di bawah ini. Persyaratan saya untuk daftar direktori:
./
dan../
), file, dan tautan--group-directories-first
tidak bekerja di Git Bash untuk WindowsSetelah banyak peretasan, saya akhirnya menemukan satu-liner (meskipun garis yang sangat panjang ;-)) yang saya puas. Saya telah menugaskan ini ke alias bernama 'dir':
Agar lebih mudah dikelola, saya datang dengan perintah terpisah untuk menampilkan setiap segmen dari daftar direktori sesuai dengan keinginan saya, lalu menggabungkannya menggunakan
&&
operator.ls -dlF --color * .* | head -n2
- Ekstrak./
dan../
. Kami tidak ingin melewati inisort
karena sudah dalam urutan yang benar, dan mengurutkannya dapat../
didaftarkan terlebih dahulu. The-d
pilihan adalah untuk menyingkirkan "total" line; Saya ingin menambahkan-F
untuk memperlihatkan trailing slash untuk direktori (ini juga akan menandai symlink dengan "@" ketika Anda melakukan hal biasals -F
).ls -AlF | LC_ALL=C grep "^d" | LC_ALL=C sort -k 9df
- Ekstrak direktori dan urutkan berdasarkan nama file (kolom ke-9), abaikan karakter non-alpha / spasi (d
opsi) dan huruf besar-kecil (f
opsi). Thels -A
tidak termasuk opsi./
dan../
dari daftar karena kita sudah diekstrak dalam langkah sebelumnya. Saya cenderung untuk awalan semuagrep
dansort
perintah denganLC_ALL=C
reset lokal sehingga (1) output konsisten di seluruh shell Unix, dan (2) Anda kadang-kadang dapat melihat kinerja lebih cepat karena tidak lagi memiliki overhead karakter UTF-8 yang diatur ke berurusan dengan.ls -AlF | LC_ALL=C grep "^[l-]" | LC_ALL=C sort -k 9df
- Ini mirip dengan langkah di atas, tapi kali ini kami menyortir file dan symlink.find -maxdepth 1 -type d ! -name . | wc -l
- Dapatkan jumlah direktori, tidak termasuk./
dan../
.find -maxdepth 1 -type f | wc -l
- Dapatkan jumlah file.find -maxdepth 1 -type l | wc -l
- Dapatkan jumlah symlink.du -hs | cut -f 1
- Ekstrak ukuran total semua subdirektori dalam format yang dapat dibaca manusia.find -maxdepth 1 -type f -print0 | du -ch --files0-from=- | tail -n 1 | cut -f 1
- Ekstrak ukuran total semua file dalam format yang dapat dibaca manusia.Mari kita lihat
dir
alias baru kita dalam aksi!SEBELUM:
SETELAH:
Satu kelemahan kecil adalah Anda tidak dapat memiliki daftar warna, karena karakter kontrol warna yang mengelilingi nama file membuat penyortiran terlalu tidak dapat diandalkan.
MEMPERBARUI
Alias di atas sangat lambat ketika dijalankan dari direktori root dari sistem file yang dalam, jadi saya telah memperbarui ke perintah yang lebih sederhana tetapi jauh lebih performant ini:
Output sampel:
Karena versi baru dari Git Bash untuk Windows mendukung
--group-directories-first
, kami tidak lagi harus kembali aktifsort
. Meskipun alias baru tidak menampilkan informasi sebanyak alias sebelumnya, keuntungan kinerja lebih dari sepadan. Sebagai kegembiraan, Anda juga mendapatkan warna!sumber
Anda punya beberapa pilihan, tergantung jika Anda ingin menjaga urutan abjad.
Anda bisa mencoba:
atau ini, untuk menjaga urutan alfabet untuk file dengan izin yang sama:
atau, seperti yang dikatakan sebelas81 (tetapi versi ini mencantumkan semuanya):
sumber
ls- al|sort -k1 -r
bekerja. Yang hilang hanyalah-r
bendera../
dan../
tidak akan menjadi dua baris pertama, dalam urutan itu. Selain itu, saya setuju bahwa ini adalah solusi yang lebih efisien.Untuk jawaban delerious010 , saya akan menambahkan bahwa jika Anda ingin memesan gaya lama:
(atau gunakan LC_ALL atau LANGUAGE atau LC_COLLATE setel ke "C").
Ini akan memberikan sesuatu yang mirip dengan:
Meskipun, jika saya ingat dengan benar, file dot tersembunyi awalnya muncul di depan direktori.
sumber
Inilah fungsi untuk melakukan ini (bash atau zsh): Dan ... Saya tidak menyarankan ini adalah cara terbaik, tapi inilah yang saya buat dan saya gunakan saat ini:
sumber
ls -l
) untuk memfilter menurut jenis file seperti itu. Juga, perintah ini akan memecah spasi (dalam bash). Anda perlu mengutip seperti ini:"$@"
Jika Anda ingin menggunakan pendekatan ini, Anda dapat melakukan sesuatu seperti:function lss {local temp="$(command ls -l --color=always "$@")"; egrep --color=never '^d|total' <<<"$temp"; egrep --color=never -v '^d|total' <<<"$temp"}
ls -laX
akan menampilkan direktori pertama dalam urutan abjad, tetapi akan mengacaukan daftar file.Opsi panjang:
sumber
Cara lain ...
ATAU
ATAU
sumber
TL; DR
Penjelasan
Saya menggunakan kombinasi solusi yang disediakan dalam jawaban dan komentar di sini.
Default
ls
Pertama-tama, saya menimpa perilaku default untuk
ls
:-l
: Selalu tampilkan daftar sebagai daftar vertikal satu dimensi-h
: Tampilkan ukuran file dengan cara yang dapat dibaca manusia (mis. 4.0K bukannya 4096)-F
: Menampilkan indikator seperti garis miring untuk direktoriDiperpanjang
ll
Selanjutnya, saya menulis fungsi yang berisi logika pengurutan. Untuk setiap
ls
saya melewati setiap argumen yang semula disahkan untuk itu. Itu memungkinkan saya menggunakan alias dari direktori kerja yang berbeda dari yang ingin saya daftarkan (yaituls -a ~
).Juga, setiap panggilan ke
ls
disalurkan kegrep
perintah. Di sini, penyortiran terjadi.ls -l | grep "^d"
misalnya hanya mendaftar direktori. Jika direktori harus didaftar terlebih dahulu, ini harus didahulukan dalam fungsi juga. Selanjutnya adalah file.Terakhir, saya menunjukkan semua yang bukan direktori atau file (atau baris yang menunjukkan ukuran total isi direktori). Ini dilakukan dengan menangkap directoy, entri file biasa dan total entri dan kemudian membalikkan hasilnya melalui
-v
argumen.Akhirnya, saya alias fungsi ke perintah baru. Khususnya saya tidak ingin menimpa
ls
kalau-kalau fungsi saya melanggar beberapa skenario. Maka saya ingin dapat menggunakanls
. Atau, Anda selalu dapat menjalankan perintah yang tidak disebutkanls
dengan memohon\ls
.Catatan
;
bukannya&&
sebagai pembatas untuk perintah. Jika tidak, seseorang tidak dapat membuat daftar isi direktori yang tidak mengandung direktori (perintah ls pertama bernilai false, sehingga tidak memungkinkan eksekusi perintah berikutnya karena ditambah dengan&&
.;
Hindari itu.)sumber
Ini adalah solusi skrip. Daftar hanya nama, tidak ada data inode, abjad, tidak peka huruf besar kecil, diformat ke dalam kolom. Meskipun itu baris-utama, bukan kolom utama seperti output default ls. Kolom menjadi sedikit berantakan jika ada nama file dengan> 26 karakter.
Dan yang lainnya, dengan beberapa format tambahan.
Output untuk yang terakhir terlihat seperti berikut, minus warna:
Hanya ingat untuk tidak alias atau mengubah perilaku default ls karena skrip ini menyebutnya.
sumber