3 puan yazan GN⁺ 2024-07-23 | 1 yorum | WhatsApp'ta paylaş

eza

eza'ya giriş

  • eza, Unix ve Linux işletim sistemlerinde varsayılan olarak sunulan dosya listeleme komutu ls için modern bir alternatiftir
  • Dosya türleri ile meta verileri ayırt etmek için renkler kullanır
  • Sembolik bağlantıları, genişletilmiş öznitelikleri ve Git'i tanır
  • Küçük ve hızlıdır, tek bir binary olarak sunulur
  • Kullanıcı dostu ve özellik açısından zengin bir ls alternatifi olmayı hedefler

eza'nın başlıca özellikleri

  • exa 2021'de ortaya çıkan "grid bug" düzeltildi
  • Hyperlink desteği
  • Mount point ayrıntıları sunar
  • Selinux context çıktısı
  • Git depo durumu çıktısı
  • İnsan tarafından okunması kolay göreli tarih gösterimi
  • Çeşitli güvenlik düzeltmeleri
  • Açık terminal renkleri desteği
  • Çeşitli küçük hata düzeltmeleri ve değişiklikler

Kurulum

  • eza; Windows, macOS ve Linux'ta kullanılabilir
  • Platform ve dağıtıma göre kurulum yönergeleri INSTALL.md içinde bulunabilir

Komut satırı seçenekleri

Görüntüleme seçenekleri

  • -1, --oneline: Her satırda bir öğe göster
  • -G, --grid: Öğeleri grid biçiminde göster (varsayılan)
  • -l, --long: Genişletilmiş ayrıntıları ve öznitelikleri göster
  • -R, --recurse: Dizinleri özyinelemeli olarak tara
  • -T, --tree: Dizinleri ağaç biçiminde özyinelemeli olarak tara
  • -x, --across: Grid'i yatay hizala
  • -F, --classify=(when): Dosya adlarında türü göster (always, auto, never)
  • --colo[u]r=(when): Terminal renklerinin ne zaman kullanılacağını ayarla (always, auto, never)
  • --colo[u]r-scale=(field): field düzeylerini ayırt ederek vurgula (all, age, size)
  • --color-scale-mode=(mode): --color-scale için sabit renk veya geçiş kullan (fixed, gradient)
  • --icons=(when): İkonların ne zaman gösterileceğini ayarla (always, auto, never)
  • --hyperlink: Öğeleri hyperlink olarak göster
  • --absolute=(mode): Öğeleri mutlak yol ile göster (on, follow, off)
  • -w, --width=(columns): Ekran genişliğini sütun cinsinden ayarla

Filtreleme seçenekleri

  • -a, --all: Gizli dosyaları ve nokta ile başlayan dosyaları göster
  • -d, --list-dirs: Dizinleri normal dosya gibi listele
  • -L, --level=(depth): Özyineleme derinliğini sınırla
  • -r, --reverse: Sıralama düzenini tersine çevir
  • -s, --sort=(field): Sıralanacak alanı ayarla
  • --group-directories-first: Dizinleri diğer dosyalardan önce listele
  • -D, --only-dirs: Yalnızca dizinleri listele
  • -f, --only-files: Yalnızca dosyaları listele
  • --no-symlinks: Sembolik bağlantıları gösterme
  • --show-symlinks: Sembolik bağlantıları açıkça göster
  • --git-ignore: .gitignore içinde belirtilen dosyaları yok say
  • -I, --ignore-glob=(globs): Yok sayılacak dosyalar için glob deseni ayarla

Uzun görünüm seçenekleri

  • -b, --binary: Dosya boyutlarını ikili öneklerle göster
  • -B, --bytes: Dosya boyutlarını bayt cinsinden göster
  • -g, --group: Her dosyanın grubunu göster
  • -h, --header: Her sütuna başlık satırı ekle
  • -H, --links: Her dosyanın hard link sayısını göster
  • -i, --inode: Her dosyanın inode numarasını göster
  • -m, --modified: Değiştirilme zaman damgası alanını kullan
  • -M, --mounts: Mount ayrıntılarını göster (yalnızca Linux ve macOS)
  • -S, --blocksize: Ayrılmış dosya sistemi blok boyutunu göster
  • -t, --time=(field): Kullanılacak zaman damgası alanını ayarla
  • -u, --accessed: Erişim zaman damgası alanını kullan
  • -U, --created: Oluşturulma zaman damgası alanını kullan
  • -X, --dereference: Dosya bilgisi için sembolik bağlantıları çöz
  • -Z, --context: Her dosyanın güvenlik context'ini göster
  • -@, --extended: Her dosyanın genişletilmiş özniteliklerini ve boyutunu göster
  • --changed: Değişiklik zaman damgası alanını kullan
  • --git: Her dosyanın Git durumunu göster
  • --git-repos: Her dizinin Git durumunu göster
  • --git-repos-no-status: Yalnızca dizinin bir Git deposu olup olmadığını göster (daha hızlı)
  • --no-git: Git durumunu gösterme
  • --time-style: Zaman damgası biçimini ayarla
  • --total-size: Özyinelemeli dizin boyutunu göster
  • --no-permissions: İzin alanını gösterme
  • -o, --octal-permissions: Her dosyanın izinlerini sekizlik biçimde göster
  • --no-filesize: Dosya boyutu alanını gösterme
  • --no-user: Kullanıcı alanını gösterme
  • --no-time: Zaman alanını gösterme
  • --stdin: Dosya adlarını stdin'den oku

eza'ya nasıl katkıda bulunulur

  • eza'ya katkıda bulunmak için önce davranış kurallarına uymak gerekir
  • Davranış kurallarını anladıktan sonra, gerçek geliştirme hakkında bilgi almak için CONTRIBUTING.md dosyasına bakılabilir

GN⁺ özeti

  • eza, ls için modern bir alternatiftir ve daha fazla özellik ile kullanıcı dostu bir arayüz sunar
  • Çeşitli renk seçenekleri ve Git durumu gösterimi gibi kullanışlı özellikler içerir
  • Windows, macOS ve Linux'ta kullanılabilir; kurulum da basittir
  • ls ile benzer olsa da daha fazla seçenek sunarak dosya listeleme işlerini daha verimli hale getirir
  • Benzer işlev sunan araçlardan biri exadır

1 yorum

 
GN⁺ 2024-07-23
Hacker News yorumları
  • "human readable dates" rahatsız edici. Dizin listesinde tarih ve saati görmek istiyorum

    • Örneğin, "1 day ago" yerine tam zaman bilgisini tercih ederim
    • Bunun sebebi sonsuz kaydırma olabilir
  • lsd de var ama ezayı tercih ediyorum

    • Modern komut satırı araçları önerileri
      • bat - vurgulama özellikli cat
      • difftastic - daha iyi bir diff
      • gdu - SSD için disk alanı analiz aracı
      • zoxide - modern bir cd
      • fd - find yerine geçer
      • rg - ripgrep (grep)
      • fzf - bulanık arayıcı
      • jless - fareyle katlama özelliği olan JSON görüntüleyici
      • dra - sürüm varlıklarını indirip kurma aracı
      • lazygit - Git TUI
      • lazydocker - Docker TUI
      • yazi - görsel önizlemeli dosya yöneticisi
      • zellij - daha iyi bir tmux / screen
      • starship - çapraz shell prompt yapılandırması
  • GNU ls aktif olarak bakımı yapılan bir araç

    • Yakın tarihli commit'ler var (2024-06-24, 2024-06-27)
    • GNU Coreutils posta listesi de aktif
  • fish shell'e geçtikten sonra ls kullanımım %100 azaldı

    • Alt + l komutuyla dizin içeriği gösteriliyor
    • Shell geçmişi daha temiz kalıyor
  • Dosya türlerini renklerle ayıran terminal araçlarıyla ilgili sorunlar var

    • Gözü yormayan bir terminal arka planı kullanıyorum
    • Renk şeması arka planla çakışabiliyor ya da okunması zor olabiliyor
    • ls veya ls alternatifi çıktısında renk istemiyorum
    • ls -AFC çıktısı benim için yeterli
  • GNU yardımcı araçlarının yeni sürümlerinin neden MIT lisansıyla derlendiğini merak ediyor

  • README'de ezanın exanın bir fork'u olduğunun belirtilmemesi garip bulunuyor

  • qwerty klavyede eza yazmak rahatsız edici

    • ls hızlı bir tuş kombinasyonu
    • alias kullanılabilir ama uyumluluk sorunları vb. yüzünden tuhaf
  • eza/exanın temel özelliği güzel renkler değil, Git entegrasyonu

    • Dosya listesinde tek tek dosyaların Git durumunu görebiliyorsunuz (yok sayılmış, değiştirilmiş vb.)
  • ls kullanan neredeyse kimse yok

    • Gereken dosyalar sekme tamamlama ile listeleniyor
    • İnsanlar neden ls'nin artık bakım almadığını iddia ediyor, merak ediliyor