08. 리눅스 파일 유틸리티
- 샘플 파일 : me.txt you.txt a.txt b.txt
- 파일 속성으로 파일 찾기
- 사용법 : find 디렉터리 [-옵션]
- 사용예
- find ~ -name src -print
- find ~ -name src -ls
- find /usr -name *.c -print
- find . -user whan -print
- find . -size 100 -print
- find . -size -100 -print
- find . -size +100 -print
- 100 : size가 100블럭(512bytes/1블럭)
- -100 : size가 100블럭 이하
- +100 : size가 100블럭 이상
- find ~ type d -print
- d : 디렉터리
- f : 일반 파일
- l : 심볼릭 링크
- b : 블록 장치 파일
- c : 문자 장치 파일
- s : 소켓 파일
- find . -perm 700 -ls
- find . -atime 30 -print
- find . -atime -30 -print
- find . -atime +30 -print
- 30 : 접근 시간이 30일인 파일
- -30 : 접근 시간이 최근 30일 이내 파일
- +30 : 접근 시간이 30일 이상 오래된 파일
- find . -type d -perm 700 -print
- find . -name core -size + 2048 -ls
- find . -name core -exec rm -i {}\;
- find . -name *.c -atime + 30 -exec ls -l {}\;
- {}\; : 검색된 파일들을 의미
- 옵션
- -name 파일명
- -atime +n
- -atime -n
- -mtime +n
- -mtime -n
- -perm nnn
- -type x
- -size n
- -links n
- -user 사용자명
- -group 그룹명
- -ls
- -exec cmd {}\;
- 파일 필터링
- 사용법 : grep 패턴 파일명
- 사용예
- grep with you.txt
- grep -w with you.txt
- grep -n with you.txt
- grep ‘st..‘ you.txt
- grep ‘st.*e’ you.txt
- grep -w ‘st.*e’ you.txt
- 옵션
- -i
- -l
- -n
- -v
- -c
- -w
- 정규식
- ? : 한 문자 or 없음
- . : 임의의 한 문자
- * : 0번 이상 반복
- [알파벳들] : 알파벳들 중 하나
- [^알파벳들] : 알파벳들에 속하지 않는 문자
- ^문자열 : 시작문자열
- 문자열$ : 끝문자열
- 파일 정렬
- 사용법 : sort [-옵션] 파일들
- 사용예
- sort you.txt : 오름차순
- sort -r you.txt : 내림차순
- sort -k 3 you txt 또는 sort +2 -3 you.txt : 3번필드 기준
- sort -o sort.txt you.txt : you.txt를 정렬하여 sort.txt에 저장
- sort –t: -k 3 -n /etc/passwd
- 옵션
- -b : 앞에 붙은 공백 무시
- -c : 정렬이 되지 않은 상태로 출력
- -d : 숫자, 문자, 공백만 비교하여 사전식 순서로 정렬
- -f : 대소문자 구분하지 않고 정렬
- -n : 숫자 문자열의 숫자값에 따라 비교 정렬
- -r : 역순을 정렬
- -t 문자 : 지정한 문자를 필드 구분자로 사용
- 파일 비교
- cmp 파일1 파일2
- : 파일1과 파일2가 같은지 비교한다.
- 두 파일이 같으면 아무 것도 출력하지 않음.
- 두 파일이 서로 다르면 서로 달라지는 위치 출력
- diff [-i] 파일1 파일2
- 파일1과 파일2를 줄 단위로 비교하여 그 차이점을 출력한다.
- -i 옵션은 대소문자를 무시하여 비교한다.
- 출력 : 첫 번째 파일을 두 번째 파일 내용과 같도록 바꿀 수 있는 편집 명령어 형태
- a : 추가
- d : 삭제
- c : 변경
- cmp 파일1 파일2
- 기타 파일 조작
- split [-l n] 입력파일 : 파일 분할, n행씩 분할
- cat 파일1 파일2 .. 파일n > 통합 : 파일 합병
- paste 파일1 파일2 > 통합 : 줄단위 합병