2012-01-09 33 views
11

bir dosya yolu (örn /src/com/mot) Linux veya kabuk komut dosyası kullanarak değilse, nasıl mot var olup olmadığını kontrol edin ve onu oluşturabilir Verilen ?? bash/sh/ksh ileDizin var mı, yoksa linux değil mi?

cevap

18

, yapabileceğiniz:

dosyalarında
if [ ! -d /directory/to/check ]; then 
    mkdir -p /directory/toc/check 
fi 

, o zaman var olmayan dosya üzerinde ne gerekiyorsa işlemleri yapabilir, -f ile -d değiştirin.

+7

ne aradığını olduğunu

if [ -d /src/com/mot ]; then echo Directory found else mkdir /src/com/mot fi 

Umut Aslında çek gerekmez. 'mkdir -p' varolan bir dizinde hareket etmiyor. – thiton

+1

Bu doğru bir nokta. 'Mkdir' den önce başka şeyler yapmak isterse OP'yi çerçeveye veriyormuş gibi bırakacağım. –

+1

Bu, dizinin birinci ve ikinci satır arasında oluşturulmuş olması durumunda bir yarış durumu verdiğini unutmayın. – Sjoerd

5
test -d /src/com/mot || mkdir /src/com/mot 
6

mkdir -p zaten varsa bir hata vermeden dizin oluşturur. dizinin

4

Kontrol dizin için

if [ -d "$DIRPATH" ]; then 
    # Add code logic here 
fi 

kontrol yok var

if [ ! -d "$DIRPATH" ]; then 
    # Add code logic here 
fi 
5

Eh, sadece mevcut değilse onu oluşturmak için dizinin kontrol ederseniz, size de sadece kullanabilirsiniz:

mkdir -p /src/com/mot 

mkdir -p eğer mevcut değilse dizini yaratacaktır, aksi halde hiçbir şey yapmaz.

3

Bu baisc olduğunu ama çalıştığını düşünüyorum. Dönmek ve kontrol etmek için dinamik bir listeye sahip olmak istiyorsanız, birkaç değişken belirlemeniz gerekir. sizin için ...

+0

olmadan davayla ilgili olarak sjoerd'in yorumunu okudum ';' if-cümlesinin kapanışından sonra. –

+0

Teşekkür ederiz .. sabit – Silvertiger

+0

@Chirstian The ';' ']' den sonra gerekli değildir ve ']' bir kapatma dirseği değildir. '[' Komutunda ',' sondaki '] bu komutun sadece bir argümanıdır.Yeni satır, yarı-kolon ile aynı amaca hizmet eder. –

İlgili konular