2013-01-24 16 views
20

Trên một trong các hệ thống từ xa của chúng tôi mkdir -p $directory không thành công khi thư mục tồn tại. có nghĩa là nó cho thấymkdir -p không thành công khi thư mục tồn tại

mkdir: không thể tạo thư mục '$ thư mục': tập tin tồn tại

Điều này thực sự khó hiểu, như tôi tin rằng hợp đồng của -p được đó là luôn luôn thành công khi thư mục đã tồn tại . Và nó hoạt động trên các hệ thống khác mà tôi đã thử.

có một người dùng test trên tất cả các hệ thống này và directory=/home/test/tmp.

Trả lời

25

Điều này có thể xảy ra nếu đã có tệp bằng cùng tên trong thư mục.

Chỉnh sửa: Lưu ý rằng một thư mục không thể chứa cả tệp và thư mục bằng cùng tên trên máy linux.

+1

đó là chính xác những gì đã và tôi hiện đang xem xét và sửa các kịch bản của chúng tôi – UmNyobe

+1

Đó là lưu ý khó chịu ( – SET

5

Kiểm tra xem có tệp nào (không phải thư mục) có tên giống với thư mục $ không.

2

mkdir -p sẽ không tạo thư mục nếu có tệp có cùng tên tồn tại trong cùng một thư mục. Nếu không, nó sẽ hoạt động như mong đợi.