
Bash Örnekleri – cd ve ls nasıl tek komutta kullanılır
Ne zaman cd ile bir klasörün içine girsem, hemen akabinde yaptığım şey klasörün içeriğini ls komutu ile listelemek olur. Hepiniz bunu yapıyor mu bilmiyorum ama bazılarınızın bu alışkanlığının olduğunu tahmin ediyorum. cd ve ls komutlarının fonksiyonlarını birleştirmek daha iyi olabilir öyle değil mi? Bu kısa belge sizlere Linuxta klasörün içine cd ile girdiğinizde aynı anda içeriği listelemenizi sağlayacaktır.
Esasında benim size bahsettiğim şey tek satır komutla alakalı bir konu değil. Bunu zaten aşağıdaki komutla yapabilirdiniz.
$ cd dir && ls
Evet bu çalıştı ancak bu belgede bizim kastettiğimiz şey elbette bu değil. Biz bunu basit BASH fonksiyonu ile yapacağız. Bu BASH ı destekleyen Unix tarzı bütün işletim sistemlerinde işe yarayacaktır.
$ nano ~/.bashrc Aşağıdaki satırları sona ekleyin
cdls() { local dir="$1" local dir="${dir:=$HOME}" if [[ -d "$dir" ]]; then cd "$dir" >/dev/null; ls --color=auto else echo "bash: cdls: $dir: Directory not found" fi }
Ben burada cdls() ismindeki fonksiyonu hatırlaması kolay olsun diye kullandım. Bu fonksiyonu istediğiniz gibi isimlendirebilirsiniz. Ayrıyeten ls –color=auto parametresini kaldırabilirsiniz. Dosyayı kaydedip kapatın.
Değişikliklerin etkili olması için aşağıdaki komutu çalıştırın.
$ source ~/.bashrc
Şimdi klasörün içine cdls ile girmeye çalıştığınızda otomatik olarak içeriğini listelediğini göreceksiniz.
$ cdls /var/log/ alternatives.log btmp dpkg.log kern.log syslog wtmp apt cloud-init.log faillog landscape syslog.1 auth.log cloud-init-output.log installer lastlog tallylog bootstrap.log dist-upgrade journal lxd unattended-upgrades sk@ubuntuserver:/var/log$ pwd /var/log
Selam ve sevgi ile.
Öz ve anlaşılır anlatiminiz için sağolun Mehmet bey, kodların örnek ekleri işlemi kolaylaştırıp pratiğe katkı sağlıyor. Devamını bekliyoruz..
“cd /var/log/ |ls” ??