Skip to main content

리눅스에서 'mkdir'명령어로 디렉토리를 만드는 법

리눅스 13강. Linux(Unix) 파일 편집 및 관리 (4 월 2025)

리눅스 13강. Linux(Unix) 파일 편집 및 관리 (4 월 2025)
Anonim

이 가이드에서는 명령 줄을 사용하여 Linux에서 새 폴더 또는 디렉토리를 만드는 방법을 보여줍니다.

디렉토리를 만드는 데 사용하는 명령은 mkdir입니다. 이 기사는 Linux에서 디렉토리를 생성하고 사용 가능한 모든 스위치를 다루는 기본적인 방법을 보여줍니다.

새 디렉토리를 만드는 방법

새 디렉토리를 만드는 가장 간단한 방법은 다음과 같습니다.

mkdir

예를 들어, test라는 홈 폴더 아래에 디렉토리를 만들려면 터미널 창을 열고 홈 폴더에 있는지 확인하십시오 (cd ~ 명령 사용).

mkdir 테스트

새 디렉토리의 권한 변경

새 폴더를 만든 후 특정 사용자 만 폴더에 액세스 할 수 있도록하거나 일부 사용자가 폴더의 파일을 편집 할 수 있지만 다른 사용자는 읽기 전용으로 설정할 수 있도록 권한을 설정하고자 할 수 있습니다.

마지막 섹션에서는 test라는 디렉토리를 만드는 방법을 설명했다. ls 명령을 실행하면 해당 디렉토리에 대한 사용 권한이 표시됩니다.

ls -lt

기회는 당신이 다음과 같은 내용을 가지고있을 것입니다 :

drwxr-xr-x 2 소유자 그룹 4096 Mar 9 19:34 테스트

우리가 관심있는 비트는drwxr-xr-x 소유자그룹

d는 test가 디렉토리임을 알려줍니다.

d 다음의 처음 세 문자는 소유자의 이름으로 지정된 디렉토리에 대한 소유자 권한입니다.

  • r은 읽기를 의미합니다.
  • w는 쓰기를 의미합니다.
  • x는 실행 (이 경우 폴더에 액세스 할 수 있다는 의미)

그 다음 세 문자는 그룹 이름으로 지정된 파일에 대한 그룹 권한입니다. 다시 옵션은 r, w 및 x입니다. -은 누락 된 권한이 있음을 의미합니다. 위의 예에서 그룹에 속한 사람은 폴더에 액세스하여 파일을 읽을 수는 있지만 폴더에 쓸 수는 없습니다.

마지막 세 문자는 모든 사용자가 가지고있는 권한이며 위의 예에서 볼 수 있듯이 그룹 권한과 동일합니다.

파일이나 폴더의 권한을 변경하려면chmod명령. chmod 명령을 사용하면 권한을 설정하는 3 개의 번호를 지정할 수 있습니다.

  • 읽기 권한 = 4
  • 쓰기 권한 = 2
  • 사용 권한을 실행 = 1

혼합 된 사용 권한을 얻으려면 숫자를 함께 추가하십시오. 예를 들어 읽기 및 실행 권한을 얻으려면 필요한 수는 5이고, 읽기 및 쓰기 권한을 얻으려면 숫자는 6이고 쓰기 및 실행 권한을 얻으려면 숫자는 3입니다.

chmod 명령의 일부로 3 개의 숫자를 지정해야한다는 것을 기억하십시오. 첫 번째 숫자는 소유자 권한 용이고 두 번째 숫자는 그룹 권한 용이며 마지막 숫자는 다른 사람 용입니다.

예를 들어 소유자에 대한 전체 사용 권한을 얻으려면 그룹에 대한 읽기 및 실행 권한을 갖고 다른 사용자에게는 사용 권한이 없으면 다음을 입력하십시오.

chmod 750 테스트

폴더를 소유하는 그룹 이름을 변경하려면 chgrp 명령을 사용하십시오.

예를 들어 회사의 모든 회계사가 액세스 할 수있는 디렉토리를 만들고자한다고 가정 해보십시오.

먼저 다음을 입력하여 그룹 계정을 만듭니다.

groupadd 계정

그룹을 만들 수있는 올바른 권한이없는 경우 sudo를 사용하여 추가 권한을 얻거나 su 명령을 사용하여 유효한 권한을 가진 계정으로 전환해야 할 수 있습니다.

이제 다음을 입력하여 폴더 그룹을 변경할 수 있습니다.

chgrp 계정

예 :

chgrp 계정 테스트

계정 그룹에있는 누군가에게 소유자뿐만 아니라 읽기, 쓰기 및 실행 액세스 권한을 부여하려면 다른 사람에게 읽기 전용으로 다음 명령을 사용할 수 있습니다.

chmod 770 테스트

계정 그룹에 사용자를 추가하려면 다음 명령을 사용하는 것이 좋습니다.

usermod -a -G 계정

위의 명령은 사용자가 액세스 할 수있는 보조 그룹 목록에 accounts 그룹을 추가합니다.

디렉토리를 만들고 동시에 권한을 설정하는 방법

다음 명령을 사용하여 디렉토리를 만들고이 디렉토리에 대한 권한을 동시에 설정할 수 있습니다.

mkdir -m777

위의 명령은 모두가 액세스 할 수있는 폴더를 만듭니다. 이러한 종류의 사용 권한으로 무엇이든 만들려는 것은 매우 드뭅니다.

필요한 폴더 및 부모 생성

디렉터리 구조를 만들고 싶지만 길과 함께 개별 폴더를 만들고 트리 아래로 작업하고 싶지는 않다고 가정 해보십시오.

예를 들어 다음과 같이 음악 폴더를 만들 수 있습니다.

  • / home / music / rock / alicecooper
  • / home / music / rock / queen
  • / home / music / rap / drdre
  • / home / music / jazz / louisjordan

락 폴더를 만든 다음 앨리스 쿠퍼와 퀸 폴더를 만든 다음 rap 폴더와 dr dre 폴더를 만든 다음 재즈 폴더와 louisjordan 폴더를 만들어야합니다.

다음 스위치를 지정하면 모든 상위 폴더가 아직없는 경우 즉시 생성 할 수 있습니다.

mkdir -p

예를 들어 위에 나열된 폴더 중 하나를 만들려면 다음 명령을 사용하십시오.

mkdir -p ~ / music / rock / alicecooper

디렉토리가 생성되었다는 확인 받기

기본적으로 mkdir 명령은 작성중인 디렉토리가 성공적으로 작성되었는지 알려주지 않습니다. 오류가 나타나지 않으면 오류가 있다고 가정 할 수 있습니다.

생성 된 내용을 알 수 있도록 자세한 출력을 얻으려면 다음 스위치를 사용하십시오.

mkdir -v

출력은 다음 행을 따라 출력됩니다.mkdir : 생성 된 디렉토리 / 경로 / to / directoryname.

쉘 스크립트에서 "mkdir"사용하기

때로는 "mkdir"명령을 쉘 스크립트의 일부로 사용하려고합니다. 예를 들어 경로를 허용하는 스크립트를 살펴 보겠습니다. 스크립트가 실행되면 폴더를 만들고 "hello"라는 단일 텍스트 파일을 추가합니다.

#! / bin / bash mkdir $ @ cd $ @ touch hello

첫 번째 줄은 작성한 모든 스크립트에 포함되어야하며 이것이 실제로 BASH 스크립트임을 나타내는 데 사용됩니다.

"mkdir"명령은 폴더를 만드는 데 사용됩니다. 두 번째 줄과 세 번째 줄의 끝에있는 "$ @"(입력 매개 변수라고도 함)는 스크립트를 실행할 때 지정한 값으로 바뀝니다.

"cd"명령은 지정한 디렉토리로 변경되고 마지막으로 touch 명령은 "hello"라는 빈 파일을 작성합니다.

스크립트를 직접 사용해 볼 수 있습니다. 그렇게하려면 다음 지침을 따르십시오.

  1. 터미널 창을 엽니 다 (Alt 키와 T를 눌러야 함).
  2. 들어가다 nano createhellodirectory.sh
  3. 위의 명령을 편집기에 입력하십시오.
  4. CTRL과 O를 동시에 눌러 파일을 저장하십시오.
  5. CTRL과 X를 동시에 눌러 파일을 종료하십시오.
  6. 입력하여 사용 권한 변경 chmod + x createhellodirectory.sh
  7. 다음을 입력하여 스크립트를 실행하십시오. ./createhellodirectory.sh 테스트

스크립트를 실행하면 "test"라는 디렉토리가 생성되고 해당 디렉토리로 변경하면CD 테스트) 디렉토리 목록을 실행합니다 (ls), 당신은 "hello"라고 불리는 하나의 파일을 보게 될 것입니다.

지금까지는 그렇게 좋았지 만 이제 7 단계를 다시 실행 해보십시오.

  1. 폴더가 이미 있다는 오류가 표시됩니다.

스크립트를 개선하기 위해 할 수있는 다양한 방법이 있습니다. 예를 들어 폴더가 이미 존재하는 한 우리는 그것이 존재하는 한 특별히 신경 쓰지 않습니다.

#! / bin / bash mkdir -p $ @ cd $ @ 안녕하세요.

mkdir 명령의 일부로 -p를 지정하면 폴더가 이미 존재하면 오류가 발생하지 않지만 존재하지 않으면 오류가 생성되지 않습니다.

터치 명령은 파일이 존재하지 않는 경우 생성하지만 존재한다면 마지막으로 액세스 한 날짜와 시간을 수정합니다.

touch 문이 다음과 같이 파일에 텍스트를 쓰는 echo 문으로 대체되었다고 가정 해보십시오.

#! / bin / bash mkdir -p $ @ cd $ @ echo "hello">> hello

"./createhellodirectory.sh test"명령을 반복해서 실행하면 테스트 디렉토리에서 "hello"라는 파일이 점점 더 커지고 "hello"라는 단어가있는 줄이 늘어납니다.

자, 이것은 의도 한대로 일 수도 있고 아닐 수도 있지만, 지금은 이것이 바람직한 행동이 아니라고 말할 수 있습니다. 다음과 같이 echo 명령을 실행하기 전에 디렉터리가 존재하지 않는지 확인하는 테스트를 작성할 수 있습니다.

#! / bin / bash mkdir $ @ 2> / dev / null; if $? -eq 0; cd $ @ echo "hello">> hello exit fi

위 스크립트는 폴더 생성을 처리하기 위해 제가 선호하는 방법입니다. mkdir 명령은 입력 매개 변수로 전달되는 폴더를 작성하지만 오류 출력은 / dev / null로 전송됩니다 (본질적으로 아무데도 의미하지 않음).

세 번째 행은 "mkdir"명령문 인 이전 명령의 출력 상태를 검사하고 성공하면 "fi"명령문에 도달 할 때까지 명령문을 수행합니다.

즉, 폴더가 만들어지고 명령이 성공하면 원하는 모든 작업을 수행 할 수 있습니다. 명령이 성공적이지 않은 경우 다른 작업을 원하면 다음과 같이 else 문을 입력하면됩니다.

#! / bin / bash mkdir $ @ 2> / dev / null; if $? -eq 0; thencd $ @ echo "hello">> helloexitelsecd $ @ echo "hello"> helloexitfi

위의 스크립트에서 mkdir 문이 작동하면 echo 문은 "hello"라는 단어를 "hello"라는 파일의 끝에 보내고, 존재하지 않으면 "hello"라는 단어와 함께 " 안녕하세요 ".

이 예는 특별히 실용적이지 않습니다. echo "hello"> 헬로우 라인. 이 예제의 요점은 "mkdir"명령을 실행하고, 오류 출력을 숨기고, 명령의 상태를 확인하여 성공했는지 여부를 확인한 다음 "mkdir"명령 그것이 성공하지 못하면 다른 명령들이 성공했다.