Section 1.2: 파일 관리 명령어들

Linux 는 현재 디렉토리와 부모 디렉토리를 나타내기 위한 위한 몇가지의 관례가 있는데, 이는 초보자에게는 조금 혼란스러울 수 있다.

어떤 상황이건 Linux 에서 터미널을 사용중이라면, "현재 작업 디렉토리 (current working directory)" 라는 곳에 위치한 상태일 것이다.

많은 경우 사용자의 커맨드 프롬프트는 작업 디렉토리 전체 혹은 마지막 일부를 표시해 줄 것이다. 사용자의 프롬프트가 표시되는 방식은 다음 몇가지 중에 하나와 유사할 수 있다:

user@host ~/somedir $ user@host somedir $ user@host /home/user/somedir $

위 예제에서는 사용자의 작업 디렉토리가 /home/user/somedir 임을 나타내고 있다.

Linux 에서 .. 는 부모 디렉토리를 나타내며, . 는 현재 디렉토리를 나타낸다.

따라서, 현재 다렉토리가 /home/user/somedir 인 상태라고 한다면, cd ../somedir 명령어는 작업 디렉토리의 변경을 야기하지 않을 것이다.

아래의 테이블에는 파일 관리에 자주 사용되는 명령어들의 목록이 소개되어 있다.

디렉토리 이동 관련 명령어 용도
pwd 현재 작업 디렉토리의 전체 경로 (path) 를 얻어온다.
cd - 가장 마지막으로 작업중이던 디렉토리로 되돌아간다.
cd ~ 또는 cd 사용자의 home 디렉토리로 이동한다.
cd .. 현재 디렉토리의 부모 디렉토리로 이동한다 (cd.. 사이에 공백이 있음에 유의하라)

디렉토리 내의 파일 표시 관련 명령어 용도
ls -l 현재 디렉토리 내의 파일들과 디렉토리들의 목록을 긴 (테이블) 형식으로 출력한다 (ls 사용시에는 가독성을 위해 -l 옵션을 이용하는 것을 추천한다).
ls -ld dir-name dir-name 이라는 이름의 디렉토리에 대해 해당 디렉토리 내의 내용물이 아닌 디렉토리 자체에 대한 정보를 출력한다.
ls -a 숨겨진 파일를 포함한 모든 파일들의 목록을 나열한다 (. 로 시작하는 이름의 파일들은 Linux 에서 숨겨진 파일로 인식된다).
ls -F 파일 이름 마지막에 각 파일의 종류에 따라 기호 (symbol) 를 덧붙인다. (* 는 실행 파일을, / 는 디렉토리를, @ 는 심볼릭 링크를, = 는 소켓을, | 는 named pipe 를, > 는 door 를 나타낸다).
ls -lt 파일들을 마지막 수정된 시간 기준으로 정렬하여 가장 최근 수정된 파일을 가장 위에 보여주는 순서로 출력한다 (-l 옵션은 가독성이 더 뛰어난 긴 형식의 출력을 지원함을 기억하라).
ls -lh 파일들의 크기를 사람들이 파악하기 쉬운 형태로 출력한다.
ls -lR 모든 서브디렉토리의 내용까지 재귀적으로 출력한다.
tree 현재 디렉토리부터 시작하는 파일 시스템상의 tree 정보를 생성하여 출력한다.

파일과 디렉토리에 대한 생석, 복사 및 삭제 명령어 용도
cp -p source destination 파일을 source 로부터 destination 으로 복사한다. -p 는 보존 (preservation) 옵션임을 나타낸다. 해당 옵션은 파일 복사시에 원본 파일의 소유자, timestamp, 그룹, 권한 등의 속성을 유지할 수 있도록 한다.
cp -R source_dir destination_dir source 디렉토리를 지정된 destination 에 재귀적으로 복사한다.
mv file1 file2 Linux 에서는 rename 에 해당하는 명령어가 존재하지 않는다. 따라서 mv 를 통해 file1 을 file2 로 이동시키거나 이름을 변경할 수 있다.
rm -i filename 모든 파일들에 대해 삭제 전 사용자 확인을 요청한다. Linux 커맨드라인 사용에 익숙치 않은 사용자라면 항상 rm -i 를 사용하는 것이 좋을 것이다. 여러 개의 파일에 대해서도 동작한다.
rm -R dir-name dir-name 디렉토리를 재귀적으로 삭제한다.
rm -rf dir-name dir-name 디렉토리를 재귀적으로 삭제하되, 존재하지 않는 파일에 대한 에러럴 무시하고 어떠한 확인 프롬프트도 띄우지 않는다. 이 명령어를 사용할 시에는 주의가 필요하다! 명령 대상으로 복수 개의 디렉토리를 지정할 수도 있다.
rmdir dir-name dir-name 디렉토리를 삭제한다. 이 명령어는 비어있는 디렉토리에 대해서만 동작한다.
mkdir dir-name dir-name 라는 이름의 디렉토리를 생성한다.
mkdir -p dir-name/dir-name 디렉토리를 계층 구조대로 생성한다. 생성하고자 하는 디렉토리의 부모 디렉토리가 존재하지 않을 경우 부모 디렉토리까지 같이 생성한다. 명령 대상으로 복수 개의 디렉토리를 지정할 수도 있다.
touch filename filename 이라는 이름의 파일이 존재하지 않는 경우 파일을 새로 생성한다. 만약 이미 존재하는 파일이라면 해당 파일의 timestamp 를 현재 시간으로 변경한다.

파일/디렉토리 권한 및 그룹 설정 관련 명령어 용도
chmod <specification> filename 파일 권한을 변경한다. 명세 (specification) = u 사용자, g 그룹, o 기타, + 권한 추가, - 제거, r 읽기, w 쓰기,x 실행.
chmod -R <specification> dir-name 디렉토리의 권한을 재귀적으로 변경한다. 특정 디렉토리와 그 디렉토리 내의 모든 파일 및 디렉토리들의 권한을 변경하고자 한다면, 이 명령어를 사용한다.
chmod go=+r myfile 파일 소유자와 그룹에 대해 읽기 권한을 추가한다.
chmod a +rwx myfile 모든 사용자들에게 myfile 에 대한 읽기, 쓰기 및 실행 권한을 부여한다.
chmod go -r myfile 그룹과 기타 사용자들에게서 읽기 권한을 제거한다.
chown owner1 filename 파일의 소유권을 owner1 에게 이양한다.
chgrp grp_owner filename filename 파일에 대한 그룹 소유권을 grp_owner 에게 이양한다.
chgrp -R grp_owner dir-name dir-name 디렉토리에 대한 그룹 소유권을 grp_owner 에게 재귀적으포 이양한다. 특정 디렉토리와 그 디렉토리 내의 모든 파일 및 디렉토리들의 소유권을 이양하고자 한다면, 이 명령어를 사용한다.
본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

+ Recent posts