반응형
파일 관리
- ls
- 지정한 경로에 존재하는 파일과 디렉터리의 리스트를 출력한다.
- 파일의 크기, 소유자, 수정한 시간 등 다양한 정보도 함께 보여준다.
- 옵션 지정이 없으면 현재 디렉터리의 파일 및 디렉터리를 알파벳 순서로 보여준다.
- 형식: # ls [optison] file ...
- 옵션
- -a, --all
- -d, --directory: 디렉터리 자체에 대한 정보를 출력한다.
- -F, --classify: 각 파일명마다 파일의 유형을 뜻하는 문자를 붙여 준다.
- @: 심볼릭 링크
- *: 실행 파일
- =: 소켓
- |: 파이프
- /: 디렉터리
- -t: 마지막 수정 시간을 최신 기준으로 정렬하여 출력한다.
- -u: -lt 옵션과 함께 마지막 수정 시간 대신 접근 시간을 출력한다.
- -i, --inode: 각 파일의 아이노드 번호를 출력한다.
- -r, --reverse: 역순으로 정렬한다.
- -R, --recursive: 목록 중 디렉터리가 있다면 디렉터리 안의 목록도 출력한다.
- -S: 파일 크기 기준으로 정렬한다.
- -1: 한 줄에 하나의 항목만 출력한다.
- 예제: 다음 명령어 결과에 대해 설명하라.
- # ls -l
- # ls -alF
- # ls -ld test
- # ls -ldi test
- cp
- 지정한 파일이나 디렉터리를 복사하는 명령어다. 일반 명령어와 달리 성공하면 아무 출력이 없으며, 출력 결과를 확인하고 싶으면 '-v' 옵션을 사용한다.
- 이미 존재하는 파일이 있는 경우 기본적으로 덮어쓰기가 된다. 이를 원치 않으면 '-i' 옵션을 사용한다. '-i' 옵션은 'interactive'의 머리글자이다.
- 형식: # cp [option] source ... destination
- 옵션
- -r, -R, --recursive: 디렉터리 내의 파일이나 디렉터리도 복사한다.
- -i, --interactive: 존재하는 파일을 덮어쓰기 전에 사용자에게 확인을 받는다.
- -f, --force: 이미 존재하는 파일에 덮어쓸 수 없는 경우 해당 파일을 삭제 후 다시 복사를 시도한다.
- -b: 대상 파일이 이미 존재할 때 기존 파일명 뒤에 '~'를 붙여 백업한다. 'b'는 'backup'을 의미한다.
- -s, --symbolic-link: 파일을 복사하는 대신에 심볼릭 링크를 생성한다. 단 모든 소프 파일은 절대 경로여야 하고 대상 경로는 현재 디렉터리가 아니어야 한다.
- -p: 허가권, 사용자 소유권, 그룹 소유권, 마지막 파일 접근 시간과 수정 시간을 보존하여 복사한다. 이 옵션을 사용하지 않으면 현재 사용자의 정보가 사용된다.
- -v, --verbose: 항목의 정보를 자세하게 출력한다.
- -d: 심볼릭 링크가 참조하는 파일이 아닌 심볼릭 링크 자체를 복사한다.
- -a, --archive: 복사할 때 원본 파일이 가진 모든 정보를 그대로 복사한다. '-dR --preserve=all'과 동일하다.
- -l, --link: 파일을 복사하지 않고 하드 링크를 생성한다.
- -u, --update: 원본 파일이 대상 파일보다 최신이거나 대상 파일이 존재하지 않을 때 복사한다.
- 예제: 다음 결과를 설명하라
- # cp resume.doc myresume.doc
- # cp ~/resume.doc /tmp
- # cp ~/Documents/*.doc ~Documents/*.xls ~/Documents/*.txt ~/SendTo
- # cp -R ~/Documents ~/DocumentsBackup
- # cp -s library-10.so library.so
- # cp -a /home/apple/* /backup/
- rm
- 지정한 파일을 삭제하는 명령이다. 옵션을 사용하지 않으면 디렉터리는 지우지 않는다. 디렉터리를 삭제하려면 '-r' 또는 '-R' 옵션을 사용해야 한다.
- 파일 시스템상 파일 이름가 실제 데이터와의 링크를 제거할 뿐 데이터 자체를 지우지는 않는다.
- 형식: rm [option] file...
- 옵션
- -i: 삭제하기 전에 확인
- -f, --force: 파일이 존재하지 않아도 무시
- -r, -R, --recursive: 디렉터리와 그 이하의 파일 및 디렉터리를 모두 삭제
- 예제: 다음을 설명하라
- rm -- -dashfile.txt 또는 rm ./-dashfile.txt
- rm photo.jpg
- rm -f photo.jpg
- rm -i *
- rm -rf ~/photos
- shred 명령어: rm 명령어는 파일 시스템상 실제 데이터는 지우지 않는다. 실제 데이터를 지울려면 'shred' 명령어를 사용한다. 사용법은 'shred -u 파일명'이다.
- mv
- 지정한 파일이나 디렉터리를 지정한 경로로 이동하거나 이름을 변경할 수 있다.
- 형식: mv [option] source ... destination
- 옵션
- -i, --interactive: 파일의 허가권과 관계 없이 존재하는 파일을 덮어쓰기 전에 사용자에게 확인을 받는다.
- -f, --force: 사용자 확인 없이 해당 파일이 존재하더라도 덮어쓴다. 다수의 파일을 이동할 때 기존 파일이 읽기 전용인 경우 해당 옵션을 사용하면 사용자에게 매번 물어보지 않고 진행된다.
- -b: 대상 파일이 이미 존재하는 경우 덮어쓰기 전에 백업 파일을 만든다. 백업 파일명은 원본 파일명 뒤에 '~'가 붙는다.
- -u, --update: 대상 파일이 최신인 경우 덮어쓰지 않는다. 즉 대상 파일이 오래됐거나 존재하지 않으면 덮어쓴다.
- -t, --target-directory: 모든 원본 파일을 지정한 경로로 이동한다.
- 예제: 다음을 설명하라
- $ mv music.mp3 musicbox
- $ mv music.mp3 spring.mp3 fall.mp3 musicbox
- $ mv -t musicbox music.mp3 spring.mp3 fall.mp3
- $ mv musicbox/ musics/
- touch
- 파일의 마지막 접근 시간, 수정 시간, 변경 시간과 같은 파일스탬프 정보를 수정하는 명령어이다. 파일이 없는 경우는 빈 파일을 생성한다.
- 형식: tuch [option] filename
- 옵션
- -a: atime(access time)만 변경한다.
- -m: mtime(modification time)만 변경한다.
- -t: 현재 시간 대신에 지정한 타임스탬프를 설정할 수 있다. 타임스탬프 형식은 [[CC]YY]MMDDhhmm[.ss]이다. 타임스탬프 형식은 [MMDDhhmm[.ss]]이다.
- -r, --reference: ㅎㄴ재 시간이 아닌 지정한 파일의 타임스템프로 변경한다. 이 옵션을 사용하려면 옵션으로 지정한 파일에 대한 쓰기 권한 및 소유자여야 한다.
- -c, --no-create: 파일을 생성하지 않는다. 파일이 존재하는 경우에마 파일스탬프를 현재 시스템 시간으로 변경하고 존재하지 않으면 빈 파일을 생성하지 않는다.
-
타임스탬프 종류 - 접근 시간(access time: atime): 파일을 읽은 마지막 시간.
- 수정 시간(modification time: mtme): 파일의 내용이 변경되었던 마지막 시간.
- 변경 시간(change time: ctime): 파일의 허가권과 같은 상태가 변경되었던 시간. atime과 mtime도 파일의 상태가 포함되므로 이들이 변경되면 ctime도 변경됨
- file
- 파일의 유형을 확인하는 명령어이다.
- 형식: file [option] filename
- 옵션
- -b, --brief: 파일명은 출력하지 않고 파일 유형만 출력한다.
- 예제
- $ file t1
- $ file -b t1: 파일 이름이 나오지 않는다.
- find
- 파일이나 디렉터리 이름, 생성 날짜, 수정 날짜, 소유자, 허가권 등 사용자가 지정한 조건에 부합하는 파일 시스템에 존재하는 파일과 디렉터리를 찾는 명령어
- 옵션
- -name: 패턴과 파일 이름과 부합하는 파일을 찾는다. 파일 이름은 파일 경로는 제외한다.
- -user: 지정한 사용자가 소유한 파일을 찾는다.
- -group: 지정한 그룹에 속한 파일을 찾는다.
- -uid: 파일의 UID가 지정한 UID와 같은 파일을 찾는다.
- -gid: 파일의 GID가 지정한 GID와 같은 파일을 찾는다.
- -perm: 지정한 허가권과 일치하는 파일을 찾는다.
- -type: 지정한 파일 유형을 찾는다.(b, c, d, p, f, l, s)
- -atime: 파일의 마지막 접근 시간이 지정한 일(day) 이전 파일을 찾는다.
- -ctime: 파일의 마지막 변경 시간이 지정한 일(day) 이전 파일을 찾는다.
- -mtime: 파일의 마지막 수정 시간이 지정한 일(day) 이전 파일을 찾는다.
- -exec: 패턴에 부합하는 파일을 찾을 때마다 실행할 명령어를 지정할 수 있다.
- -ok: -exec 옵션과 동일한 기능을 수행하지만 사용자에게 명령을 수행할지 먼저 물어본다.
- -print: 표준 출력으로 개행 문자로 종료하는 전체 파일 경로를 출력한다. find 명령어의 결과를 파이프로 다른 프로그램에게 보낼 때 해당 프로그램이 경로의 끝을 개행 문자로 인식하는 경우 유용하다. 만약 널(null) 문자로 끝나기를 원한다면 -print0을 사용한다.
- -fprint: 지정한 파일에 찾은 파일의 전체 파일의 전체 파일 경로를 출력한다. 지정한 파일이 없다면 생성하고, 존재한다면 합친다.
- -ls: ls -dils 형식으로 찾은 파일에 대한 정보를 출력한다.
- -size: 지정한 크기의 파일을 찾는다. '+'와 '-'를 사용하여 파일 크기의 범위를 지정할 수 있다. 예를 들어 -size +512c -size -1024c라고 하면 512바이트보다 크고 1024보다 작은 범위를 뜻한다. 여기서 'c'는 바이트를 뜻한다.(b, c, w, k, M, G)
- -inum: 지정한 아이노드 번호의 파일을 찾는다.
- -iname: -name과 동일하지만 대소문자를 구분하지 않는다.
- -maxdepth: 지정한 깊이의 디렉터리까지만 찾는다. 0으로 지정하면 하위 디렉터리까지 찾지 않고 지정한 디렉터리 내의 파일만 찾는다.
- -prune: 찾은 파일이 디렉터리인 경우 그 하위 내용까지 검색하지 않는다.
- -empty: 파일 크기가 0이거나 비어있는 디렉터리를 찾는다.
- -newer: 지정한 파일보다 최근에 수정된 파일을 찾는다.
- -cnewer: 지정한 파일보다 최근에 변경된 파일을 찾는다.
- 예제: 다음 명령어 사용을 설명하라.
- find[find .]
- find . /home/easyfly
- find . -name '*.txt'
- find . -name 'apple' type f
- find . -group daemon
- find . -user toshiba
- find . -atime -5
- find . -perm u=rwx,g=rx,o=r
- find . -perm 754
- find . -size -5G
- find . -size +1G -exec mv '{} ~/bigfiles \;
- find . -name '*.log' -print0 | xargs -0 rm -f
- find . -name '[abc]*'
- find . -ctime +1 -ctime -2
반응형
'Linux > 리눅스 시스템 관리' 카테고리의 다른 글
02_01_파일 시스템 관리 및 복구 (0) | 2022.03.10 |
---|---|
01_02_06_텍스트 관련 명령어 (0) | 2022.03.08 |
01_02_04_파일시스템 관리_디렉터리 관리 (0) | 2022.02.15 |
01_02_03_리눅스 파일 시스템 관리_파일 링크 (0) | 2022.02.14 |
01-02-02 파일 시스템 관리_특수 권한 (0) | 2022.02.13 |