Bunu tamamen kısa bir Bash betiğiyle de yapabilirsiniz:
#!/bin/bash
set -eu
shopt -s nullglob
[ "$#" -eq 0 ] || cd -- "$1"
i=0
for f in *; do
printf '%d. %s\n' "$((++i))" "${f//$'\n'/^N}"
done |
cat -vt
Hatta 9'dan fazla sonuç için süslü olabilir ve satır numarasını doldurabilirsiniz:
#!/bin/bash
set -eu
shopt -s nullglob
[ "$#" -eq 0 ] || cd -- "$1"
ls=(*)
pad=${#ls[@]}
pad=${#pad}
i=0
for f in *; do
printf '%*d. %s\n' "$pad" "$((++i))" "${f//$'\n'/^N}"
done |
cat -vt
kullanım
Komut dosyasını numbered-ls.shgeçerli çalışma dizinine yürütülebilir bir dosya olarak kaydettiğinizi varsayarsak :
./numbered-ls.sh [DIRECTORY]
Bağımsız değişken DIRECTORYisteğe bağlıdır ve varsayılan olarak geçerli çalışma dizinini kullanır.
açıklama
Komut dosyası bir bağımsız değişkenle çağrıldıysa, çalışma dizinini ilk bağımsız değişkendeki yol olarak değiştirin.
Geçerli çalışma dizininin tüm girdilerini eşleştirin ve onlara bakın. Her girdi için bir sayaç artar ve değerini girdinin adıyla birlikte yazdırır. Giriş adındaki satır sonu karakterleri ile değiştirilir ^N.
cat -vtTerminalin kontrol karakterleri olarak yorumlayabileceği yazdırılamayan karakterler içeren dosya adlarıyla zarif bir şekilde ilgilenmek için çıktıyı birbirine bağlayın.