mkdir의 "-p"옵션


96

그래서 이것은 제가 가진 매우 복잡한 질문처럼 보이지는 않지만 대답을 찾을 수 없습니다. -pUnix 에서 옵션이 수행하는 작업에 대해 혼란 스럽습니다 . 하위 디렉터리를 만들고 그 안에 다른 하위 디렉터리를 만드는 동안 랩 할당에 사용했습니다. 다음과 같이 보였습니다.

mkdir -p cmps012m/lab1

이것은 일반 권한 ( rlidwka)을 가진 개인 디렉토리에 있습니다. 아, 그리고 누군가가 무슨 rlidwka뜻 인지에 대해 조금 설명해 주 시겠습니까? 나는 유닉스에 대해 완전히 멍청한 사람은 아니지만 이것이 무엇을 의미하는지 잘 알지 못합니다. 너무 모호한 질문이 아니기를 바랍니다.


2
man mkdir당신의 질문에 대답 할 것입니다. "rlidwka"에 관해서는 모르겠습니다. 더 많은 맥락을 알려 주셔야합니다.
Keith Thompson

답변:


138

man 페이지는 당신이 찾을 수있는 최고의 정보 소스입니다 ... 그리고 당신의 손끝에 있습니다 : 스위치 man mkdir에 대해 이것을 산출합니다 -p:

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

사용 사례 예 : 디렉터리를 만들고 hello/goodbye싶지만 존재하지 않는다고 가정 합니다.

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

-p만들어 모두 hellogoodbye

, 명령이 요청을 수행하는 데 필요한 모든 디렉토리를 생성하고 해당 디렉토리가있는 경우 오류를 반환하지 않습니다 .

에 대해 rlidwkaGoogle은 약어에 대한 아주 좋은 메모리를 가지고 있습니다. :). 내 검색 결과가 다음과 같습니다. 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. 

따라서 rlidwka의미 : 모든 권한에 .

@KeithThompson이 주석에서 지적했듯이 모든 Unix 시스템이 ACL을 지원하는 것은 아니라는 점을 언급 할 가치가 있습니다. 그래서 아마도 rlidwka개념이 여기에 적용되지 않을 것입니다.


1
그러나 모든 유닉스 계열 시스템이 ACL을 지원하는 rlidwka것은 아니므로 의미가있을 수도 있고 아닐 수도 있습니다.
Keith Thompson

1
@KeithThompson 글쎄요, 저는 약어가 무엇을 의미하는지 언급하고 싶었습니다.
Paulo Bu

1
예,하지만 종종 누군가의 질문에 답하는 것은 답을 이해하는 데 필요한 배경 정보를 제공하는 것보다 덜 도움이됩니다.
Keith Thompson

1
대답에서 지적하겠습니다. 나는 이것을 인식하지 못했습니다. 수정 해주셔서 감사합니다.
Paulo Bu

4
이 답변은 "RTFM, Google에서 알려 드리겠습니다"라고 말할 수있는 가장 장황한 방법이며 저는 그것을 좋아합니다. 나는 한때 아무것도 모르는 초심자 인턴이었고, 관리자에게 물어보기 전에 그냥 구글 검색을해야한다는 것을 잊었다. 이 새로운 녀석들에게 쉽게 가십시오. 때로는 Google로 무엇을 찾아야할지 파악하기가 어렵습니다. 당신은 당신이 모르는 것을 모릅니다. 그러나 모든 사람들은 수년간 인터넷 검색을 수행하면 더 능숙 해집니다.
Dagrooms

4

-p|--parenttop-down접근 방식 으로 디렉토리를 생성하려는 경우 사용됩니다 . 존재하지 않는 경우 부모 디렉토리와 자식 등이 생성됩니다.

-p, --parents 존재하는 경우 오류 없음, 필요에 따라 상위 디렉토리 만들기

정보 rlidwka그것은 전체 또는 관리 액세스 권한을 부여 의미한다. https://itservices.stanford.edu/service/afs/intro/permissions/unix 에서 찾았습니다 .


3

mkdir [-switch] 폴더 이름

-p 선택적인 스위치로, 상위 폴더가 존재하지 않더라도 하위 폴더와 상위 폴더를 생성합니다.

man 페이지에서 :

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

예:

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

이렇게하면 '프레임 워크'가 이전에 사용 가능했는지 여부에 관계없이 프레임 워크 폴더 내에 하위 폴더 세션,보기, 캐시가 생성됩니다.


2

이것은 Unix 전체가 아니라 명령에 -p대한 인수 mkdir입니다. 모든 명령은 필요한 인수를 가질 수 있습니다.

이 경우 "부모"를 의미합니다. 즉 mkdir, 디렉토리와 아직 존재하지 않는 모든 부모를 만듭니다.


2

PATH : 오래 전에 답변했지만 -p를 "Path"(기억하기 쉬움)로 생각하는 것이 더 도움이 될 수 있습니다.이 경우 mkdir이 경로의 모든 부분을 생성하게됩니다.

mkdir -p / usr / bin / comm / diff / er / fence

/ usr / bin / comm이 이미 존재하는 경우 다음과 같이 작동합니다. mkdir / usr / bin / comm / diff mkdir / usr / bin / comm / diff / er mkdir / usr / bin / comm / diff / er / fence

보시다시피, 이미있는 것과없는 것을 파악할 필요가 없기 때문에 약간의 타이핑과 생각을 절약 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.