"mkdir"명령을 사용하여 Linux에서 디렉토리를 만드는 방법

이 가이드에서는 명령 줄을 사용하여 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입니다. -은 누락 된 권한이 있음을 의미합니다. 위의 예에서 그룹에 속한 사람은 폴더에 액세스하여 파일을 읽을 수는 있지만 폴더에 쓸 수는 없습니다.

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

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

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

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

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

chmod 750 테스트

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

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

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

groupadd 계정

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

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

chgrp 계정

예 :

chgrp 계정 테스트

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

chmod 770 테스트

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

usermod -a -G accounts <사용자 이름>

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

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

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

mkdir -m777

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

필요한 폴더 및 부모 생성

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

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

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

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

mkdir -p <폴더 이름>

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

mkdir -p ~ / music / rock / alicecooper

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

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

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

mkdir -v <폴더 이름>

출력은 mkdir : created directory / path / to / directoryname 행을 따라 출력됩니다.

& # 34; mkdir & # 34; 쉘 스크립트에서

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

#! / bin / bash

mkdir $ @

cd $ @

안녕하세요.

첫 번째 줄은 작성한 모든 스크립트에 포함되어야하며 이것이 실제로 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 test)로 변경하고 디렉토리 목록 ( 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

출구

fi

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

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

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

#! / bin / bash

mkdir $ @ 2> / dev / null;

if [$? -eq 0]; 그때
cd $ @
echo "hello">> hello
출구
그밖에
cd $ @
echo "hello"> 안녕하세요.
출구
fi

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

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