2013-02-01 20 views
5

Próbuję sprawdzić, czy argument jest katalogiem lub plikiem. Chcę wstawić/po każdej nazwie katalogu i * po każdym pliku wykonywalnym. Wiem, że ls używa -F, aby uzyskać te informacje, ale nie mogę tego zrozumieć w moim skrypcie.Sprawdź, czy argument jest plikiem lub katalogiem

Oto mój kod:

echo -n "Please enter Directory name you wish to search: " 
read dir 

for filename in "/home/me/Desktop/$dir"/* 

do 

    if (-F $filename) 
    then 
    echo $filename 

    fi 
done 

Odpowiedz

9

[ -f "$filename" ] jest prawdziwe dla plików [ -d "$dirname" ] jest prawdziwe w odniesieniu do katalogów.

+0

Po zmianie kodu nadal pojawia się błąd – Tomala

+0

@Tomala: Jaki błąd? Jak zmieniłeś swój kod? – choroba

+0

Mam na myśli, że nie ma błędu, ale nie wyświetla "/" dla katalogu i "*" dla pliku, tak jak ma to miejsce, gdy po prostu wpisuję ls -F. Jakieś pomysły ? ? – Tomala

Powiązane problemy