본문 바로가기

별걸다하는 IT/리눅스 유닉스

알아야 할 리눅스 파일 및 디렉터리 기본 명령어 2탄 및 관련문제 (mkdir, rm, rmdir, cat, mv, cp)

리눅스 완전 정복 : 리눅스 목차

저번에 이어서 ~~~~

저번 포스팅 1탄! : https://jhnyang.tistory.com/13

 

알아야 할 리눅스 파일 및 디렉터리 기본 명령어 1탄 및 관련문제(cd,ls,pwd, touch 등)

리눅스 완전 정복 : 리눅스 목차 리눅스 기초 중의 매우 기초 리눅스 명령어 생기초를 알아봅시다. 리눅스 파일 및 디렉터리 관련 명령어 1탄 생기초니까.. 결국 여기서 말하는 디렉터리는 폴더예요 폴더 윈도우야..

jhnyang.tistory.com

알아야 할 기본 리눅스 명령어 2탄을 살펴봅시다!

저번에 pwd, ls, cd, touch 총 4번개 했으니 오늘은 5번부터

5.

mkdir (make directory) 

디렉터리를 생성하는 명령어

$ mkdir [option] directory_name(s)

 

 옵션

의미 

 -p 

 경로로 지정된 서브 디렉터리가 존재하지 않은 경우에 함께 생성합니다.  

 

$ mkdir www

-> 현재 디렉터리(폴더)에 www라는 서브 디렉터리 생성(폴더 안에 폴더 또 만드는거)

 

$ mkdir -p www/pds/photo

-> 현재의 디렉터리의 www하위의 pds안에 photo라는 디렉터리를 생성하는데, 만약 www와 pds라는 디렉터리가 존재하지 않으면 같이 생성

 

$ mkdir log backup

log, backup이라는 2개의 디렉터리 ~ 여러 디렉터리를 같이 생성하고 싶을 때!

6.

생성하는 명령어가 있으면 짝꿍처럼 삭제하는 명령어도 나와야겠죠?

rm (remove) 

파일을 삭제하는 명령으로 옵션에 따라 디렉터리도 삭제합니다.

$ rm [options] file(s) 또는 directory

 

옵션

  의미 

 -i

 파일 삭제할 때 질의를 할 때 사용합니다.

 'y'라고 입력하면 삭제하고 'n'라고 입력하면 삭제를 취소 

  -f

 존재 유무나 어떠한 메세지 없이 강제 삭제 

  -r, -R

 하위 디렉터리를 포함하여 디렉터리 안 모든 내용을 다 삭제

 이 옵션을 사용하면 파일 뿐만 아니라 디렉터리도 삭제할 수 있습니다 

 

$ rm -i *

-> 현재 디렉터리의 모든 파일을 하나씩 확인하면서 지운다. 즉 삭제 전에 질의를 하는데, 'y'를 누르면 삭제하고, 'n'을 누르면 삭제하지 않습니다.

질의가 이와 같이 뜹니다.

y를 눌러서 삭제 후에 파일 목록을 출력해보면 삭제되서 아무것도 안뜨는 것을 확인할 수 있어요

 

$ rm -rf data/

-> data라는 디렉터리와 그 안의 모든 파일과 디렉터리를 사용자 확인 메시지 없이 무조건 강제로 지웁니다

7.

rmdir (remove directory) 

디렉터리 삭제 명령어

$ rmdir [option] directory_name(s)

 

디렉터리 안이 비어있지 않으면 지울 수 없습니다

  옵션

 의미 

  -p

 삭제하려는 디렉터리를 제거한 후에 부모 디렉터리도 빈 디렉터리가 되면 부모 디렉터리도 삭제합니다. 

 

$ rmdir www

-> 현재 디렉터리에 있는 www라는 디렉터리를 삭제합니다

 

$ rmdir -p www/pds/photo

-> 최하위 디렉터리인 photo를 삭제한 후 pds가 빈 디렉터리가 되면 pds도 같이 삭제합니다

또 pds 삭제 후에 www이 빈 디렉터리가 되면 얘도 다시 삭제

 

 

 

 

 

포스팅이 길어서 작성하는데 시간이 많이 걸리는군요 (1탄 2탄 이어서 작성중..)

그래도 고지가 다왔다.. 헉헉

8.

이제 폴더사이를 왔다갔다 이동했다가

파일을 만들고 지우는 아주아주 기본적인 조작법(?) 관련 명령어들을 쭉 훑었어요

이런! 근데 파일을 삭제는 할 수 있지만 보는 법을 모르네요 

다음은 파일을 읽는데 사용하는 cat명령어입니다.

 

cat (concatenate)

텍스트 파일 내용 출력 명령어

$ cat [option] filename(s)

 

cat은 리다이렉션(redirection)과 매우 잘 쓰여요 

리다이렉션은 입출력의 방향을 바꾸는 역할을 하는데 이렇게 말하면 느므 어렵게 들리잖아요 

종류가 >, >>, <, << 가 있는데 그냥 이렇게 생겨먹은게 리다이렉션이구나 알면 되고

사용법은 예시를 보면 딱 잘 이해됩니다.

 

$ cat > new.text

-> 키보드로부터 입력받은 내용을 new.txt라는 파일에 저장합니다. 입력한 후에 ctrl+D를 누르면 입력한 내용이 저장돼요 (요기 보이는 '>'가 리다이렉션이예요)

new.txt파일에다가 hello nice to meet you 를 작성했어요 ls로 확인해보니 파일이 생긴 걸 알 수 있고

cat + 파일명을 통해 안에 어떤게 적혀있는지 볼 수 있습니다

잘 작성된 것을 확인!

 

$ cat a.txt

$ cat < a.txt 

-> a.txt 파일 내용을 화면에 출력한다 둘 다 같은 말

 

$ cat /etc/passwd

-> /etc/passwd 파일을 출력!

 

$ cat < a.txt > b.txt

->a.txt의 내용을 b.txt라는 파일에 출력합니다. 이 경우에는 cp a.txt b.txt한 것과 같습니다. (cp는 밑에 나올 카피명령어)

 

$ cat a.txt b.txt 

-> a.txt 내용과 b.txt 내용을 화면에 출력

$ cat a.txt b.txt > c.txt
-> a.txt, b.txt 두 파일 내용을 합해서 c.txt 파일로 저장합니다.
 
$ cat a.txt; cat b.txt; cat c.txt
-> 여러 파일 (a,b,c) 을 한꺼번에 보여줍니다.

 

$ cat >> a.txt

-> 기존의 a.txt라는 파일이 존재하면 그 파일에 표준 입력(키보드)로부터 받은 내용을 추가합니다. 

만약 a.txt라는 파일이 존재하지 않으면 '>'한거랑 똑같은 결과를 줍니다.

 

9.

mv (move)

파일이나 디렉터리의 이름을 변경하거나 이동시키는 명령어

$ mv [options] source(s) destination

 

  옵션

 의미 

 -i 

 이동할 디렉터리에 동일한 파일명이 존재할 경우에 덮어 쓸 것인지를 물어봅니다.

 'y'라고 입력하면 덮어쓰고 'n'이라고 입력하면 취소!

 

$ mv readme.txt /home/posein/data/

-> readme.txt라는 파일을 /home/posein/data 디렉터리로 옮깁니다

 

$ mv /home/posein/data/ /home/posein/backup/

-> /home/posein/data/라는 디렉터리를 /home/posein/backup/으로 이름을 변경합니다

 

$ mv a.txt b.txt

-> a.txt 파일의 이름을 b.txt 파일로 변경!

 

$ mv a.txt b.txt data/ /tmp

-> a.txt, b.txt라는 파일과 data라는 디렉터리를 /tmp 디렉터리로 옮기기~

10.

우리 맨날 ctrl +c, ctrl +v로 복붙하죠?

파일이나 디렉터리를 복사하기 위한 명령어로는 cp명령어가 있습니다!

cp (copy)

파일이나 디렉터리 복사 명령어

$ cp [options] source(s) destination

 

  옵션

 의 미  

  -r, -R 

 복사하려는 대상이 디렉터리인 경우에 하위 디렉터리까지 같이 복사합니다 

 -i

 복사를 통해 생성할 파일이 존재할 경우에 덮어 쓸 것인지 물어봅니다.

 'y' 덮어쓰기 'n' 복사 취소 

 -f 

 같은 파일의 이름이 존재하는 경우에 강제로 덮어씁니다. 

 -b

 덮어쓸 때 백업본의 파일을 만듭니다. 

 원래 파일명 뒤에 ~가 붙는 파일이 백업용으로 생성됨 

 -s  

 복사하는 대신 심볼릭 링크를 만들어줍니다 

 -p

 소유권, 그룹, 허가권 등 모든 정보를 복사합니다

 이 옵션이 없을 경우 현재 시간과 복사하는 사용자의 기본 허가권, 소유권, 그룹 정보로 복사합니다. 

 

cp 명령어 또한 이 외에 많은 옵션들이 있으나 이 정도만 참조하도록 하고 나머지는 man 명령어에서 확인해줍시다.

 

오늘은 여기까지~~ 다음 3차 명령어에서 뵐게요!

https://jhnyang.tistory.com/60

 

[Linux]알아야 할 리눅스 기본 명령어 3탄 및 관련문제(head,tail,more,less,file,clear)

리눅스 완전 정복 : 리눅스 목차 저번 포스팅에 이어서 마지막 3탄입니다. 알아야 할 기본 리눅스 명령어 3탄 오늘은 head, tail, more, less, file, clear 명령어를 살펴볼거예요. 11. head 텍스트 파일의 첫 부..

jhnyang.tistory.com

광고보답, 좋아요, 댓글은 포스팅을 정성들여 작성하는데 큰 도움이 됩니당 :)

태그

  • 이성일 2020.07.20 19:15

    매일 하루, 1~3번 명령어를 반복하면서, 사실 안되는게 조금씩 있었는데 혹시 저같이 시작하시는분을 위해 남깁니다...

    mv a.txt b.txt data/ /tmp -> /tmp 에서 / 는 가장 최상위 디렉토리를 뜻하며, 혹시라도 개인이 만들었던 디렉토리에서 백날 옴기려도 해도... 에러만 납니다. 왜냐하면, 최상위 디렉토리를 가르키고 있기 떄문입니다.

    본인이 만든 홈디렉토리에 옴기기 위해서는 ...

    mv a.txt b.txt data/ ../www

    해야합니다..