tùy chọn “-p” của mkdir


96

Vì vậy, đây có vẻ không phải là một câu hỏi quá phức tạp mà tôi có, nhưng đó là một câu hỏi tôi không thể tìm ra câu trả lời. Tôi bối rối về những gì -ptùy chọn làm trong Unix. Tôi đã sử dụng nó cho một bài tập trong phòng thí nghiệm trong khi tạo một thư mục con và sau đó là một thư mục con khác trong thư mục đó. Nó trông như thế này:

mkdir -p cmps012m/lab1

Đây là một thư mục riêng với quyền bình thường ( rlidwka). Ồ, và ai đó có phiền giải thích một chút về rlidwkaphương tiện không? Tôi không phải là một người yêu thích Unix, nhưng tôi không thực sự quen thuộc với điều này có nghĩa là gì. Hy vọng đó không phải là câu hỏi quá mơ hồ.


2
man mkdirsẽ trả lời câu hỏi của bạn. Đối với "rlidwka", tôi không có ý kiến; bạn sẽ cần cung cấp thêm ngữ cảnh cho chúng tôi.
Keith Thompson

Câu trả lời:


138

Các trang người đàn ông là nguồn thông tin tốt nhất mà bạn có thể tìm thấy ... và nằm trong tầm tay của bạn: man mkdirmang lại điều này về -pchuyển đổi:

-p, --parents
    no error if existing, make parent directories as needed

Ví dụ trường hợp sử dụng: Giả sử tôi muốn tạo thư mục hello/goodbyenhưng không có thư mục nào tồn tại:

$mkdir hello/goodbye
mkdir:cannot create directory 'hello/goodbye': No such file or directory
$mkdir -p hello/goodbye
$

-pđã tạo ra cả hai hellogoodbye

Điều này có nghĩa là lệnh sẽ tạo tất cả các thư mục cần thiết để đáp ứng yêu cầu của bạn, không trả về bất kỳ lỗi nào trong trường hợp thư mục đó tồn tại .

Về rlidwka, Google có một bộ nhớ rất tốt cho các từ viết tắt :). Tìm kiếm của tôi trả về kết quả này, ví dụ: http://www.cs.cmu.edu/~help/afs/afs_acls.html

 Directory permissions

l (lookup)
    Allows one to list the contents of a directory. It does not allow the reading of files. 
i (insert)
    Allows one to create new files in a directory or copy new files to a directory. 
d (delete)
    Allows one to remove files and sub-directories from a directory. 
a (administer)
    Allows one to change a directory's ACL. The owner of a directory can always change the ACL of a directory that s/he owns, along with the ACLs of any subdirectories in that directory. 

File permissions

r (read)
    Allows one to read the contents of file in the directory. 
w (write)
    Allows one to modify the contents of files in a directory and use chmod on them. 
k (lock)
    Allows programs to lock files in a directory. 

Do đó rlidwkacó nghĩa là: Tất cả các quyền trên .

Điều đáng nói, như @KeithThompson đã chỉ ra trong các nhận xét, rằng không phải tất cả các hệ thống Unix đều hỗ trợ ACL. Vì vậy, có lẽ rlidwkakhái niệm không áp dụng ở đây.


1
Nhưng không phải tất cả các hệ thống giống Unix đều hỗ trợ ACL, vì vậy rlidwkacó thể có hoặc không.
Keith Thompson

1
@KeithThompson Vâng, tôi đồng ý, tôi chỉ muốn đề cập đến từ viết tắt là gì.
Paulo Bu

1
Có, nhưng thường chỉ trả lời câu hỏi của ai đó sẽ ít hữu ích hơn việc cung cấp thông tin cơ bản cần thiết để hiểu câu trả lời.
Keith Thompson

1
Tôi sẽ chỉ ra nó trong câu trả lời. Tôi chỉ không biết về điều này. Cảm ơn vì đã sửa tôi.
Paulo Bu

4
Câu trả lời này là cách nói dài dòng nhất có thể để nói "RTFM, hãy để tôi google cái đó cho bạn" và tôi thích nó. Tôi đã từng là một thực tập sinh noobie không biết bất cứ điều gì, và quên rằng trước khi hỏi người quản lý của mình, tôi chỉ nên google nó. Hãy thoải mái với những chàng trai mới này; đôi khi rất khó để tìm ra những gì để google. Bạn không biết những gì bạn không biết. Nhưng mọi người đều trở nên khéo léo hơn với googling sau nhiều năm làm việc đó.
Dagroom

4

-p|--parentsẽ được sử dụng nếu bạn đang cố gắng tạo một thư mục với top-downcách tiếp cận. Điều đó sẽ tạo thư mục mẹ rồi đến thư mục con và cứ như vậy không tồn tại thư mục nào.

-p, - cha mẹ không có lỗi nếu tồn tại, tạo thư mục mẹ nếu cần

Về rlidwkanó có nghĩa là cấp quyền truy cập đầy đủ hoặc quản trị. Tìm thấy nó ở đây https://itservices.stanford.edu/service/afs/intro/permissions/unix .


3

tên thư mục mkdir [-switch]

-p là một công tắc tùy chọn, nó sẽ tạo thư mục con và thư mục mẹ cũng như ngay cả thư mục mẹ không tồn tại.

Từ trang người đàn ông:

-p, --parents no error if existing, make parent directories as needed

Thí dụ:

mkdir -p storage/framework/{sessions,views,cache}

Điều này sẽ tạo các phiên thư mục con, chế độ xem, bộ nhớ cache bên trong thư mục khung bất kể 'khung' đã có sẵn trước đó hay chưa.


2

Lưu ý rằng đó -plà một đối số cho mkdirlệnh cụ thể, không phải toàn bộ Unix. Mỗi lệnh có thể có bất kỳ đối số nào mà nó cần.

Trong trường hợp này, nó có nghĩa là "cha mẹ", nghĩa là mkdirsẽ tạo ra một thư mục và bất kỳ cha mẹ nào chưa tồn tại.


2

PATH: Đã trả lời từ lâu, tuy nhiên, có thể hữu ích hơn nếu coi -p là "Đường dẫn" (dễ nhớ hơn), vì điều này khiến mkdir tạo mọi phần của đường dẫn chưa có ở đó.

mkdir -p / usr / bin / comm / diff / er / hàng rào

nếu / usr / bin / comm đã tồn tại, nó hoạt động như sau: mkdir / usr / bin / comm / diff mkdir / usr / bin / comm / diff / er mkdir / usr / bin / comm / diff / er / hàng rào

Như bạn có thể thấy, nó giúp bạn tiết kiệm một chút thời gian nhập và suy nghĩ, vì bạn không phải tìm ra cái gì đã có và cái gì chưa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.