Özyinelemeli olarak belirli bir uzantıya sahip dosyaları aramak | Netgez.com
SORU
8 Mayıs 2011, Pazar


Özyinelemeli olarak belirli bir uzantıya sahip dosyaları aramak

Benim bash ile bir dizin ve alt dizinleri belirli bir uzantısı (en Son Ubuntu BU Sürüm ile tüm dosyaları bulmak için çalışıyorum.

Bu komut dosyasında ne yazıyor:

#!/bin/bash

directory="/home/flip/Desktop"
suffix="in"

browsefolders ()
  for i in "$1"/*; 
  do
    echo "dir :$directory"
    echo "filename: $i"
    #   echo ${i#*.}
    extension=`echo "$i" | cut -d'.' -f2`
    echo "Erweiterung $extension"
    if     [ -f "$i" ]; then        

        if [ $extension == $suffix ]; then
            echo "$i ends with $in"

        else
            echo "$i does NOT end with $in"
        fi
    elif [ -d "$i" ]; then  
    browsefolders "$i"
    fi
  done
}
browsefolders  "$directory"

Terminalde bu komut başladığımda ne yazık ki, şöyle diyor

[: 29: in: unexpected operator

('in' yerine $extension)

Hata burada, neler oluyor? Ama bu ayracı kıvırcık

CEVAP
8 Mayıs 2011, Pazar


find $directory -type f -name "*.in"

biraz her şeyi (ve daha güvenli - dosya adlarında boşluk ile ilgilenir ve dizin adları) daha kısadır.

Senaryonu büyük ihtimalle kendi adına . yok girişler için $extension boş yapma başarısız oluyor.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • talkandroid

    talkandroid

    27 Mayıs 2010
  • TheXiaxue

    TheXiaxue

    3 AÄžUSTOS 2009