Linux

2. 디렉터리 및 파일

jih0ssang 2023. 9. 18. 16:45

<학습목표>

1. 디렉터리 및 파일에 관련된 명령어에 대해 알아보자.


 

1. 디렉터리 
 pwd, ls, file


(1) 현재 작업 디렉토리 확인 : pwd
(2) 디렉토리 변경 : cd <directory>
(3) 파일목록 : ls 

◆ls가 자주 사용하는 옵션
◇ -a
           ■  .   :현재 디렉토리
           ■  ..  :상위 디렉토리 ( root디렉토리는 눌러도 그대로 root디렉토리)
◇ -F

  출력화면==> dirA/  fileA  fileB@
           ■ / : 디렉토리
           ■ *(애스태리스크):  실행파일    ex) windows에서 확장자 .exe인 파일
           ■ @(앱마스크):  심볼릭 링크 /소프트 링크
           ■ 없음 : txt파일 


◇ -R
           ■ 하위 디렉토리까지 모두 출력

◇ -d
           ■ 해당 디렉토리 자체를 가리킴 (-l 과 주로 같이사용, 현재 디렉토리 안에 해당 디렉토리가 존재하는지 확인 )
◇ -l

          ■ 파일의 속성을 확인할 수 있음
          drwxr-xr-x.  2  root  root  6   7  Feb  17  2022  dev
          ■ d: 파일의 형식
               □ d: 디렉토리
               □  l : 심볼릭링크
               □ - :  텍스트파일/실행파일
               □ b: 블록장치
               □ s: 소켓파일  (네트워크)
               □ c: 문자장치 (원시(raw)장치)
               □ p: 파이프 (Pipe)

         ■ rwxr-xr-x: permission(권한)
               □ rwx: 소유자 권한
               □ r-x:  소유 그룹 권한
               □ r-x: 기타 사용자 권한

         ■  .  : ACL (Access Control List, 접근제어 목록)
         ■ 2 : 하드 링크 수 (반드시 최소 1개 이상 존재)
         ■ root: 소유자(Owner, 이 파일을 생성한 사람)
         ■ root: 소유 그룹(Group)
         ■ 6:  파일의 크기(단위: byte)
         ■ 7  Feb  17  2022  : Modified Time (마지막으로 수정한 시간)
        
◆ 파일의 상태 확인

$  stat  (파일명) 
     ◇  Access
     ◇  Modify : 수정시간
     ◇  Change


□ MAC timestamp
- M:  Modified (파일 내용 수정&저장) 
- A:  Access (파일 열기)
- C:  Changed  (속성 변경)
              

 Modify VS Change  차이점이 뭘까요?
파일 수정 후 저장을 하면 Modify Time이 변경됩니다.

파일 속성이 변경될 경우, Change Time이 변경됩니다.
   파일 속성? → drwxr-xr-x.  2  root  root  6   7  Feb  17  2022  dev 

   이 중에 하나라도 변경되면 Change time이 변경됩니다.

 

 

2. 파일
cat, more, less, head, tail, wc


◆ 파일 출력
  ◇ cat
    ■ 파일 한번에 출력 (처음부터 끝까지 바로 출력되기 때문에 내용이 짧을 경우, 권장 )


  ◇ more
    ■ 페이지단위로 보여짐
    ■ 실행파일은 사용하면 안되고, txt파일 등 실행상태가 아닌 파일에만 사용해야 함

    ■ more를 가장 많이 사용

    ■ b : 이전페이지
    ■ Enter키: 한줄씩 출력
    ■ Space바 : 다음페이지 출력
    ■ /문자열  : 문자열 검색 가능  n: 아래로 N:위로
   
 
 ◇ less
    ■ 화살표 키를 사용가능
    ■ /문자열  : 문자열 검색 가능  n: 아래로 N:위로 (하이라이트 기능도 있음)

 ◇ head
    ■ 파일의 처음 10줄 출력
 
 ◇ tail
    ■ 파일의 끝 10줄(기본) 출력 ex) tail -3 일 경우, 3줄 출력
    ■ tail -n +20  /var/log/~~ +20줄 이후부터 내용부터 출력

 ◇ wc (word counter)
    ■ ex) wc  /etc/services
         →11176     61033   670293   
           라인수 |  단어 수 |  문자의 수
    ■ 옵션 -l    (line counter)

           → Only 라인 수만 출력

 

 

3. 디렉토리 및 파일 내용 변경

cp, mv, touch, mkdir, rm, rmdir, ln

 


1) 복사

cp  [option]  source(s)  target
   ◆ option
      ◇ -i  : 덮어쓸 것인지 확인
      ◇ -r : source(s)에 '디렉토리 디렉토리' 일 경우, 반드시 r 옵션을 지정해주어야 복사 가능    

      source           target
  ------------------------------- 
      파일               파일
      파일            디렉토리
     디렉토리       디렉토리

 


2) 이동

mv [option]  source(s)  target
       ◇ 얘는 디렉토리 디렉토리 상관X
       ◇ source와 target의 경로가 같으면 이름 변경


3) 생성

    ◆ touch : 파일생성 
       ◇ 빈파일(size=0). 
       ◇ 이미 파일이 존재한다면 mtime을 현재 시각으로 변경(atime, ctime, mtime) 

    ◆ mkdir : 디렉토리 생성
       ◇ 경로 안에 존재하지않은 디렉토리 넣으면 안됨!   ex) mkdir dirA/dirB/dirC  불가능!
       ◇ -p : 부모 디렉토리까지 같이 생성
 

 

4) 디렉토리

   ◆ rmdir <directory>
       ◇ 반드시 디렉터리 안에 내용이 없어야 함.
   ◆ rm
       ◇ rm  dirA/*
       ◇ [option]
       ■ -r (recursive,재귀) : 하위디렉터리 포함      

          ex) rm -r    :하위디렉터리 포함해서 모두 삭제

 

 

 5) 링크

   ◆ 심볼릭 링크(Symbolic)/소프트 링크
      ◇ ln  -s  source  target
      ■ 윈도우의 바로가기와 똑같다.   
      ■ ex) ln  -s  origin  symbolic
        -> 내용: symbolic 파일에는 origin파일이름 (6byte) 글자가 들어있음.
      ■ 디렉토리도 심볼릭 링크 걸 수 있음!
      ■ 다른 장치에 생성 가능 
      ■ 여러개 만들수록 사이즈가 늘어남
      ■ 원본과 inode 값이 다름

  ◆ 하드 링크
     ◇ ln  source  target
      ■ 수정하면 원본파일도 수정됨. inode를 공유
      ■ ex) ln  origin  symbolic  hard
      ■ 파일은 모두 하드링크가 하나는 반드시 존재. (심볼릭링크도 디폴트 1)
      ■ 디렉토리는 하드 링크를 걸 수 없음!
      ■ 다른 장치에 생성 불가 다른 장치?=물리적인 공간(disk)이 다름
      ■ 여러개 만들어도 사이즈 늘어나지 않음.
      ■ 원본과 inode값이 같음

'Linux' 카테고리의 다른 글

6. 사용자 및 그룹 관리  (0) 2023.09.18
5. Permission(권한)  (0) 2023.09.18
4. vi Editor(에디터)  (0) 2023.09.18
3. 파일 및 디렉터리 검색  (0) 2023.09.18
[Linux] 리눅스 기본 환경  (0) 2023.09.18