Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills
19.06.2025
No categories

Bash Komut Dosyalarında basename Komutunu Kullanma

Bash Komut Dosyalarında basename Komutunu Kullanma

Bash betikleriyle çalışırken, genellikle dosya yollarının dosya adları veya dosya uzantıları gibi belirli kısımlarını çıkarmanız gerekir. Basename komutu işte bu noktada işe yarar. Dizin yolunu çıkarmanıza ve yalnızca dosya adını veya dosya uzantısını çıkarmanıza olanak tanır, bu da onu Linux ortamlarında komut dosyası yazmak ve görevleri otomatikleştirmek için önemli bir araç haline getirir.

Bu makalede, Bash betiklerinde basename komutunun nasıl kullanılacağını, sözdizimini ve dosya işleme görevlerinizi basitleştirebilecek yaygın kullanım durumlarını inceleyeceğiz.

Basename Komutu nedir?

Linux’ta basename komutu, dizin yolunu soymak ve yalnızca dosya adını veya uzantısı olmayan dosya adını görüntülemek için kullanılır. Özellikle tam bir dosya yolundan bir dosya adını çıkarmanız gereken komut dosyalarında kullanışlıdır. Basename komutu, komut dosyalarının temiz kalmasına ve dizin yapısı hakkında endişelenmeden dosya adlarını değiştirmeye odaklanmasına yardımcı olur.

Basename’in Temel Sözdizimi

basename [path] [suffix ]
  • yol: Bir dosya veya dizinin tam yolu.
  • sonek: Belirli bir son eki (dosya uzantısı gibi) kaldırmak için kullanılan isteğe bağlı bir bağımsız değişken.

Örnek 1: Bir Yoldan Dosya Adı Çıkarma

Basename’in en yaygın kullanımı, dosya adını tam bir yoldan çıkarmaktır. Mesela:

#!/bin/bash
file_path="/home/user/documents/report.txt"
file_name=$(basename "$file_path")
echo "Dosya adı: $dosya_adı"

Çıktı:

Dosya adı : report.txt

Bu örnekte, basename, sağlanan yoldan report.txt dosyasını çıkarır. Bu, kodunuzda yalnızca dosya adıyla çalışmak istediğinizde kullanışlıdır.

Örnek 2: Dosya Uzantısını Kaldırma

Çıkarılan dosya adından dosya uzantısını kaldırmak istiyorsanız, uzantıyı ikinci bir bağımsız değişken olarak sağlayabilirsiniz:

#!/bin/bash
file_path="/home/user/documents/report.txt"
file_name=$(basename "$file_path".txt)
echo "Uzantısız dosya adı: $dosya_adı"

Çıktı:

Uzantısız dosya adı şöyledir: rapor

Burada, .txt son eki belirtilmiştir, bu nedenle basename bunu dosya adından çıkarır ve geriye yalnızca rapor kalır. Bu, özellikle dosya uzantısını değiştirmek veya dosya adını farklı bir bağlamda kullanmak istediğinizde kullanışlıdır.

Örnek 3: Komut Dosyalarında Döngü ile Basename Kullanımı

Basename komutu genellikle bir dizindeki birden fazla dosyayı işlemek için döngülerde kullanılır. Örneğin, bir dizindeki tüm .txt dosyalarını yinelemek ve uzantıları olmadan adlarını yazdırmak istiyorsanız:

#!/bin/bash
for file in /home/user/documents/*.txt; do
file_name=$(basename "$file".txt)
echo "Dosya işleniyor: $dosya_adı"
bitti

Çıktı:

İşleme dosyası: rapor
İşleme dosyası: notlar
İşleme dosyası: özet

Bu kodda, döngü belirtilen dizindeki tüm .txt dosyalarını yineler. Basename komutu, yolu ve .txt uzantısını çıkararak her dosyanın yalnızca adını yazdırmak için kullanılır.

Örnek 4: basename’in Diğer Komutlarla Birlikte Kullanımı

Basename komutu daha gelişmiş komut dosyaları oluşturmak için diğer komutlarla birleştirilebilir. Örneğin, bir dosyayı yalnızca dosya adını koruyarak başka bir dizine kopyalamak isteyebilirsiniz:

#!/bin/bash
source_file="/home/user/documents/report.txt"
destination_dir="/home/user/backup "
# Dosya adını basename kullanarak ayıklayın
file_name=$(basename "$source_file")
CODEBLOCK_d41d8cd98f00b204e9800998ecf8427e_SAFE__# Dosyayı aynı adla hedef dizine kopyalayın
cp "$source_file" "$destination_dir/$file_name"

echo "File copied to $destination_dir/$file_name"
Output:
File copied to /home/user/backup/report.txt

Bu örnekte, tam yoldan report.txt dosyasını çıkarmak için basename komutu kullanılır. Ardından, cp komutu dosyayı yedekleme dizinine kopyalamak için bu dosya adını kullanır. Bu yöntem, kopyalama işlemi sırasında dosya adının değişmeden kalmasını sağlar.

Örnek 5: Komut Dosyası Bağımsız Değişkenlerini Ayrıştırmak için basename Kullanımı

Bir dosya yolunu bağımsız değişken olarak alan komut dosyalarını basitleştirmek için basename’i de kullanabilirsiniz. Örneğin:

#!/bin/bash
if [ -z "$1" ]; then
echo "Kullanım: $0 "
çıkış 1
fifile_path="$1"

file_name=$(basename "$file_path")

echo "You provided the file: $file_name"

Bu betiği get_filename.sh olarak kaydedin ve bir dosya yolu ile çalıştırın:

./get_filename.sh /home/user/documents/report.txt

Çıktı:

Dosyayı sağladınız: report.txt

Bu kodda, basename bir kod bağımsız değişkeni olarak sağlanan yoldan dosya adını çıkarır. Bu, kullanıcı girdisini kabul eden komut dosyalarında dosya yollarını işlemek için pratik bir yoldur.

Özet

Basename komutu, Bash betiklerinde dosya yollarını işlemek için güçlü bir araçtır. Sadece dosya adını ayıklayarak veya uzantıları kaldırarak, dosya yolunun önem verdiğiniz kısımlarına odaklanmanızı sağlar. İster bir döngü içinde birden fazla dosyayı işliyor olun, ister sadece görüntülemek için bir dosya adını ayıklıyor olun, basename Bash betiklerinizi daha verimli ve okunabilir hale getirebilir.

İşte öğrendiklerinizin hızlı bir özeti:

  • basename dosya yollarından dosya adlarını çıkarır.
  • İkinci bir argüman kullanarak dosya uzantılarını kaldırabilir.
  • Dosya kopyalama, argümanları işleme veya dizinler üzerinde yineleme gibi komut dosyası görevleri için oldukça kullanışlıdır.

Basename’i etkin bir şekilde kullanmak zaman kazandırabilir ve betiklerinizin bakımını çok daha kolay hale getirebilir. Artık onu betik araç kutunuza ekleyebilir ve Linux’ta dosya işleme görevlerinizi basitleştirmeye başlayabilirsiniz! Mutlu senaryolar!

Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills

Похожие записи не найдены.