2012-01-09 60 views

Trả lời

18

Với bash/sh/ksh, bạn có thể làm:

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

Đối với tác phẩm, thay thế -d với -f, sau đó bạn có thể làm bất cứ điều gì bạn cần hoạt động trên các tập tin không tồn tại.

+7

Bạn không thực sự cần kiểm tra. 'mkdir -p' không hoạt động trên thư mục hiện có. – thiton

+1

Đó là một điểm công bằng. Tôi sẽ để nó như thể cung cấp cho OP khung trong trường hợp họ muốn làm những thứ khác trước khi 'mkdir'. –

+1

Lưu ý rằng điều này mang lại một điều kiện chủng tộc trong trường hợp thư mục được tạo giữa dòng đầu tiên và dòng thứ hai. – Sjoerd

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

mkdir -p tạo thư mục mà không đưa ra lỗi nếu nó đã tồn tại.

4

Kiểm tra cho thư mục tồn tại

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

Kiểm tra cho thư mục không tồn tại

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

Vâng, nếu bạn chỉ kiểm tra thư mục để tạo ra nó nếu nó không tồn tại, bạn cũng có thể chỉ cần sử dụng:

mkdir -p /src/com/mot 

mkdir -p sẽ tạo thư mục nếu nó không tồn tại, nếu không thì không có gì.

3

Đây là baisc, nhưng tôi nghĩ nó hoạt động. Bạn sẽ phải thiết lập một vài biến nếu bạn đang tìm kiếm một danh sách động để chu kỳ và kiểm tra.

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

Hope đó là những gì bạn đang tìm kiếm ...

+0

Bạn đang thiếu ';' sau khi đóng ']' của mệnh đề if. –

+0

cảm ơn bạn .. đã sửa – Silvertiger

+0

@Chirstian The ';' không cần thiết sau ']', và ']' không phải là một dấu ngoặc đóng. Trong trường hợp lệnh '[', dấu ']' chỉ là một đối số cho lệnh đó.Dòng mới phục vụ cùng mục đích như dấu chấm phẩy. –

Các vấn đề liên quan