공부 기록/리눅스 기초

[리눅스 기초] 04 디렉터리 명령어

도도히히 2025. 10. 31. 09:45

디렉터리 위치 확인

pwd : 현재 작업 중인 디렉터리 위치 확인

디렉터리 위치 이동

접근을 막아놓은 디렉터리 제외하고 모든 디렉터리의 이동 가능

cd 디렉터리명 : 원하는 디렉터리로 이동

홈 디렉터리가 아닌 경우 프롬프트에 ~는 붙지 X

상대 경로명

  • 상위 디렉터리로 이동하기 위해 ‘..’으로 시작한 다음 특정 디렉터리로 이동

ex) cd ../usr/lib

사용자 홈 디렉터리로 되돌아가기 위한 다양한 방법

  • cd ~
  • cd
  • cd /home/계정이름
  • cd ../../home/계정이름
    • 현재 위치가 계정이름 아래에 있는 어떤 디렉터리일 경우 상위 디렉터리로 두 번 이동해야 해서 ..을 두번 쓴 것이고 현재 위치가 계정이름에 있다면 ..을 한번만 써도 됨

 

디렉터리 내용 확인

ls [옵션] [파일명 또는 디렉터리명] : 디렉터리 내용 확인 명령

 

옵션
-a
숨겨진 파일까지 포함하여 모든 파일 리스트 출력
-d
지정한 디렉터리의 정보 출력
-n
호스트네임 확인
-i
첫 번째 열에 I-node 번호 출력
-l
파일의 상세한 정보 출력
-A
.와 ..를 제외한 모든 파일 리스트를 출력
-F
파일의 종류를 실행파일은 ‘*’, 디렉터리는 ‘/’, 심볼릭 링크는 ‘@’ 표시
-L
심볼릭 링크 파일은 원본 파일의 정보를 출력
-R
하위 디렉터리 리스트 출력

ls : 현재 디렉터리에 존재하는 디렉터리와 파일의 종류 확인

ls -a : 현재 디렉터리 내용 뿐만 아니라 숨겨져 있는 파일까지 모두 출력

  • 현재 디렉터리 의미 → . (점으로 표시)
  • 상위 디렉터리 의미 → .. (점 2개로 표시)

ls -F : 현재 디렉터리에 존재하는 파일의 종류와 기호가 함께 표시되도록 함

  • 디렉터리 파일: 파일명 뒤에 ‘/’가 붙음
  • 심볼릭 링크: @가 붙음
  • 실행 파일: *가 붙음
  • 일반 파일: 아무것도 붙지 않음

cf. ls -aF : 현재 디렉터리에 존재하는 파일의 종류와 숨김 파일까지 포함하여 모든 파일의 종류 한꺼번에 확인

ls -l : 현재 디렉터리에 존재하는 모든 파일의 상세한 정보 출력

 

 

출력된 파일의 상세한 정보

ex) drwxr-xr-x 2 userdh userdh 4096 3월 13 11:35 Desktop

d 디렉터리
rwxr-xr-x 파일 접근 권한 (rwx: 사용자 권한, r-x: 그룹 권한, r-x: 타인 권한)
2 하드 링크의 개수
userdh 파일 소유자
userdh 파일이 속한 그룹
4096 파일의 크기 (byte 단위)
3월 13 11:35 파일이 마지막으로 수정된 날짜와 시각
Desktop 파일 이름

 

cf. *ls -d / : 디렉터리 필터링 (디렉터리만 보이게 함)

현재 디렉터리 내에서 디렉터리 이름들만 보여줌

 

ls -l : 디렉터리에 존재하는 모든 파일의 상세한 정보 출력

ls -l / : 루트 디렉터리에 존재하는 모든 파일의 정보 출력

ls -ld / : 루트 디렉터리가 가지고 있는 자체 정보 출력

 

cf. ls -d / : 루트 디렉터리 자체 이름만 출력

ls -i : 현재 디렉터리에 존재하는 파일에 부여된 I-node 번호 출력

 

심볼릭 링크 명령

  • dir 명령 : ls 명령에 대한 심볼릭 링크
  • vdir 명령: ls -l 명령에 대한 심볼릭 링크

ls [파일명] : 파일의 존재 여부 확인

 

 

디렉터리 생성 및 삭제

mkdir [옵션] 생성할 디렉터리명 : 새로운 디렉터리 생성

cf. 옵션 -p : 하위 디렉터리를 계층적으로 생성할 때 중간단계의 디렉터리가 없으면 자동으로 중간단계 디렉터리를 생성하면서 전체 디렉터리를 생성

 

새로운 디렉터리 생성하기

  • 절대 경로명 : 특정 경로명을 생성할 때 사용
  • 상대 경로명 : 보편적 경로명을 생성할 때 사용

새로운 디렉터리 한번에 여러 개 생성하기

  • 디렉터리명 사이에는 공백문자를 넣어 여러 개의 디렉터리를 구분

ex) mkdir test_01 test_02 test_03

중간 디렉터리 자동으로 생성하기

ex) mkdir -p tmp/data/guest

cf. ls -R tmp : tmp 디렉터리가 존재하는 하위 디렉터리 목록까지 출력

rmdir [옵션] 삭제할 디렉터리명 : 기존에 존재하는 디렉터리 삭제 (비어있는 디렉터리 삭제)

cf. 옵션 -p : 삭제하고자 하는 디렉터리를 삭제할 때 부모 디렉터리가 빈 디렉터리로 존재할 경우에는 부모 디렉터리도 자동으로 삭제

ex) rmdir test_dir

 

비어있지 않은 디렉터리 삭제하기

rm [옵션] 삭제할 디렉터리명 : 비어있지 않은 디렉터리 삭제

cf. 옵션 -r : 삭제하기 위해 지정한 디렉터리를 삭제

ex) rm -r tmp

 

[예제]

  1. 홈 디렉터리에서 /work/space/zone 계층적 디렉터리 생성하기
  2. work 디렉터리의 하위 디렉터리까지 한꺼번에 계층적 디렉터리 출력하기
  3. zone 디렉터리로 한번에 이동하기
  4. 홈 디렉터리로 바로 이동하기
  5. 한꺼번에 /work/space/zone 계층적 디렉터리 삭제하기
  6. 계층적 디렉터리가 정상적으로 삭제되었는지 확인하기
$ mkdir -p work/space/zone
$ ls -R work
$ cd work/space/zone
$ cd
$ rm -r work
$ ls