티스토리 뷰

SYSTEM/LINUX

5) Basic Command1

chrisysl 2018. 2. 14. 18:16

#mkdir (make directory)

 - 디렉토리 생성


#> mkdir [directory name]



여러 디렉토리 한꺼번에 생성시엔

mkdir [dir1] [dir2] [dir3] ... 과 같은 형태로 생성. 인자는 공백으로 구분한다.



#> mkdir ./korea1 ./korea2 ./korea3



한꺼번에 하위 디렉토리까지 생성 하려면 -p 명령어를 이용한다



#> mkdir -p ./korea4/seoul/dobong-gu


위와같은 방법으로 디렉토리 생성시, 계층적 구조로 생성이 된다.



# 현재 경로에서 상위경로로 이동시 .. 을 이용한다.

근데 만약 두 계층 위로 올라가려면 #> cd ../../ 과 같이 두번 작성해 주면 된다.






#rmdir (remove directory)

 - 디렉토리 삭제 



#> rmdir [directory name]

형태로 디렉토리를 제거할 수 있다. 그러나 마지막에 korea4 의 디렉토리엔 하위디렉토리가 존재하므로 제거가 어렵다.



# 다음과 같이 하위 폴더가 존재한다.

즉, rmdir 이라는 명령어는 비어있는 디렉토리만 삭제가 가능하기 때문에, 사실상 이용 빈도가 높지는 않다.

따라서 지금은 어쩔수 없이 하위폴더로 경로를 이동하여 제거하며 #> cd ../ 로 상위경로로 이동하여 전부 제거해주자.



# 위와같이 한꺼번에 생성 및 삭제 도 가능하다



간단한 실습 예제.

korea01 ~ korea 10 총 10개의 디렉토리를 생성해야한다.


방법 1. #> mkdir korea01 korea02 .. korea10


방법 2. #> mkdir korea{01,02,03,04,05,06,07,08,09,10} - 중괄호 확장 이용


방법 3. #> mkdir korea{01..10}



#> mkdir korea{01,02,03,04,05,06,07,08,09,10}



#> mkdir korea{01..10}



# 위와같은 방법으로 중괄호 확장을 이용해서 한번에 계층적 구조를 생성할 수도 있다.







#cp (copy)

 - 파일 복사


#> cp [option] [source] [target]


[option]

 -i : 복사할 대상과 동일한 이름이 존재하는 경우 덮어쓸 것인지에 대해 사용자에게 물어본다.(interactive)

이 옵션 없이 그냥 cp만 사용할 경우 덮어쓸 것인지 여부를 묻지 않고 그냥 덮어쓴다. 따라서 붙혀주는것을 권장.

 -r(R) : 디렉토리를 복사할 경우 하위 디렉토리 및 파일을 모두 함께 복사한다. 가장 많이 사용.

 -v : 명령어 실행 과정을 보여준다.


[source], [target] 에는 경로가 위치하게 됨.



#> cp /bin/ls /practice/ABC 와 같이 입력할 경우 복사해서 옮길 디렉토리의 이름을 새로 지정(ABC)해서 복사.

#> cp /bin/ls /practice 의 경우 기존 디렉토리 이름을 유지 한 채 해당 경로에만 복사.

#> cp /bin/cat /bin/cut /practice/ 의 경우 두개의 디렉토리를 최종 경로에 복사.


이 때 공통적인점은 가장 우측에 존재하는 경로는 디렉토리라는 점이다.

즉, [source] 는 몇개를 나열하건 상관 없지만 [target] 에는 반드시 디렉토리여야 한다.



디렉토리를 통채로 복사하려면 -r 옵션을 사용하면 된다.



# 경로로 이동해보면 하위디렉토리 전체가 모두 복사 되었음을 알 수 있다.



#> cp /bin/ls /practice/ 입력시 기존에 이미 ls라는 폴더가 존재하므로 overwrite 할 것인지를 묻는다.

근데 우리가 -i 옵션을 붙히지 않았는데도 해당 여부를 물어보는 이유는 alias 에 가보면 알 수 있다.

cp 명령어는 -i 옵션이 디폴트로 alias로 설정되어 있기 때문이다.






#mv (move)

 - 파일 이동


#> mv [option] [source] [target]


[option]

 -i : 복사할 대상과 동일한 이름이 존재하는 경우 덮어쓸 것인지에 대해 사용자에게 물어본다.(interactive)

이 옵션 없이 그냥 cp만 사용할 경우 덮어쓸 것인지 여부를 묻지 않고 그냥 덮어쓴다. 따라서 붙혀주는것을 권장.

 -v : 명령어 실행 과정을 보여준다.



# practice 디렉토리 내에 mv_test라는 디렉토리를 생성하고 /bin/ls 디렉토리를 mv_test 경로로 복사하였다.

그다음 mv_test 내에 test라는 디렉토리를 추가로 생성하고 

#> mv ./ls ./test/ : 해당경로의 ls디렉토리를 test 디렉토리로 이동

그 결과 mv_test 내에는 test 폴더만 존재하게 되었고, 그 안에 ls 폴더가 존재하게 되었다.

다시 상위 경로로 ../를 이용하여 옮겨주었다.



# ls 디렉토리를 123 그리고 abc 라는 이름의 디렉토리로 복사 하였고, 

123, abc, ls 디렉토리 모두를 test 디렉토리로 이동하였다.

이때도 마찬가지로 [source] 는 여러개가 올 수 있지만 맨 마지막에 오는 [target] 은 디렉토리여야함을 알 수 있다.



# mv 명령어는 이름을 바꿀 때도 사용된다. 






#rm (remove)

 - 파일 삭제


#> rm [option] [target]


[option]

 - f : 삭제시 물어보지 않고 삭제한다(force)

 - r : 하위 디렉토리 및 파일을 포함하여 삭제한다.



# 다음과 같이 삭제 가능하다. 



# 위와같이 여러 디렉토리를 제거할때 모두 제거 여부를 물어본다.

근데 만약 하위 디렉토리가 100개라면 100번 허가를 모두 해 줘야 한다.



#> rm -rf [target] 명령어 이용시 전체 디렉토리가 한번에 지워졌음을 알 수 있다.

-f 옵션은 interactive 를 무시하고 강제로 진행한다는 의미이다.






지금까지 배운 명령어를 전체 한번 더 사용해 보도록 하자.


/practice/test1/bin_a        : /bin/ 디렉토리아래 a로 시작하는 파일 모두 복사

  /bin_b       : /bin/ 디렉토리아래 b로 시작하는 파일 모두 복사

  /bin_c        : /bin/ 디렉토리아래 c로 시작하는 파일 모두 복사


        

# bin_a 와 bin_b 까지는 하위 디렉토리가 몇개 없어서 a로 시작되는 파일 ([tab] 2회 눌러서)을 찾아서 직접입력하여 복사가 가능했다.


그러나 c로 시작하는 파일을 보면



# 총 7개가 존재하는데 이를 모두 하나하나 해주기엔 너무 비효율적이다.

이럴때 사용하는것이 * 이다. 



# 모두 복사가 되었음을 확인할수있다. c로 시작하는 파일에 대해서만.



*)_ 쉘 메타문자 (Shell metacharacter)

 - 리눅스 쉘은 다양한 특수문자를 이용하여 명령어를 처리한다.

 - 메타문자를 적절히 사용하면 반복되는 작업이나, 인자를 다양하게 확장 할 수 있다.


와일드 카드 문자

* : 모든 문자와 일치하는 와일드 카드 문자            ex). c* : cat, chgrp 등 c 뒤에오는 파일명의 글자 갯수에 상관잆이 모든 문자

? : 하나의 문자와 일치하는 와일드 카드 문자         ex). c?? : cat, cut 만 해당된다. 즉 c 뒤의 두글자 에 해당되는 파일만 매칭됨


 

'SYSTEM > LINUX' 카테고리의 다른 글

7) Grep&Regular-Expression  (0) 2018.02.17
6) Basic Command2  (0) 2018.02.15
4) Bash Shell  (0) 2018.02.12
3) 리눅스 구조  (0) 2018.02.09
2) 리눅스 설치 / 실습환경 구축  (0) 2018.02.09
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함