# 파일 속성으로 파일 찾기
$ find 디렉터리 [-옵션]
파일 이름이나 속성을 이용하여 해당하는 파일을 찾는다.
옵션의 검색 조건에 따라 지정된 디렉터리 아래에서 해당되는 파일들을 모두 찾아 출력한다.
find 명령어 검색 조건
파일의 접근시간(-atime) 혹은 수정 시간(-mtime)으로 검색
+n : 현재 시각을 기준으로 n일 이상 전
n : 현재 시각을 기준으로 n일전
-n : 현재 시각을 기준으로 n일 이내
파일 종류로 검색(-type)로 검색
d: 디렉터리
f : 일반 파일
l : 심볼릭 링크
b : 블록 장치 파일
c : 문자 장치 파일
s : 소켓 파일
※ 검색 조건들을 조합해서 사용할 수 있다.
ex) $ find . -type d -perm 700 -print
$ find . -name core -size +2048 -ls
검색된 파일 처리
find 명렁어의 -exec 옵션 : 검색한 모든 파일을 대상으로 동일한 작업(명령어)을 수행
ex) $ find . -name core -exec rm -i {}\;
$ find . -name *.c -atime +30 -exec ls -l {}\;
# 파일 필터링
1) $ grep 패턴 파일
: 파일(들)을 대상으로 지정된 패턴의 문자열을 검색하고, 해당 문자열을 포함하는 줄들을 출력한다.
1-1) grep 명령어 옵션
정규식
파이프와 함께 grep 명령어 사용
- 어떤 명령어를 실행하고 스 실행 결과 중에서 원하는 단어 혹은 문자열 패턴을 찾고자 할 때 사용함.
- 예) $ ls -l | grep Kang
# 파일 정렬
1) $ sort [-옵션] 파일
: 텍스트 파일(들)의 내용을 줄 단위로 정렬한다. 옵션에 따라 다양한 형태로 정렬한다.
1-1) 정렬 방법
• 정렬 필드를 기준으로 줄 단위로 오름차순으로 정렬한다.
• 기본적으로는 각 줄의 첫 번째 필드가 정렬 필드로 사용된다.
• -r 옵션을 사용하여 내림차순으로 정렬할 수 있다.
1-2) 정렬 필드 지정
필드 지정 | 기능 |
-k 필드번호 | 필드번호에 해당하는 필드를 기준으로 정렬. 이 옵션에서 필드번호는 1부터 시작됨. (필드는 문장의 맨 앞을 기준으로 n번째 있는 단어의 필드가 n값을 가진다. ) |
+시작필드 –종료필드 |
시작필드부터 종료필드-1까지의 필드들을 기준으로 정렬. 이 때 필드 번호는 0부터 시작됨. |
1-3) sort 명령어 옵션
ex) $ sort –t: -k 3 -n /etc/passwd
/etc/passwd 파일에 있는 세번째 필드에 있는 문자를 기준으로 숫자값에 따라 비교해 정렬하라.
추가) -o 출력파일 옵션 : 정렬된 내용을 지정된 파일에 저장가능.
-n 옵션일 경우, 숫자문자열의 경우에 숫자의 크기에 따라 비교하여 정렬가능하다.
# 파일 비교
1) $ cmp 파일1 파일2
: 파일1과 파일2가 같은지 비교한다.
$ cmp you.txt me.txt
>> you.txt me.txt 다름: 340 자, 10 행
2) diff [-i] 파일1 파일2
파일1과 파일2를 줄 단위로 비교하여 그 차이점을 출력한다.
-i 옵션은 대소문자를 무시하여 비교한다
출력형식) 첫 번째 파일을 두 번째 파일 내용과 같도록 바꿀 수 있는 편집 명령어 형태로.
2-1) diff 출력 : 편집 명령어
추가 (a)
ex) 첫 번째 파일의 줄 n1 이후에 두 번째 파일의 n3부터 n4까지의 줄들을 추가
=> n1 a n3,n4
> 추가할 두 번째 파일의 줄들
삭제 (d)
첫 번째 파일의 n1부터 n2까지의 줄들을 삭제하면 두 번째 파일의 줄 n3 이후 와 서로 같다.
=> n1,n2 d n3
< 삭제할 첫 번째 파일의 줄들
변경 (c)
첫 번째 파일의 n1부터 n2까지의 줄들을 두 번째 파일의 n3부터 n4까지의 줄 들로 대치하면 두 파일은 서로 같다.
n1,n2 c n3,n4
< 첫 번째 파일의 대치될 줄들 --
> 두 번째 파일의 대치할 줄들
# 기타 파일 조작
1) 파일 나누기
$ split [-l n] 입력 파일 [출력파일]
: 하나의 입력파일을 일정한 크기의 여러 개 작은 파일들로 분할한다.
-l n 옵션 을 이용하여 분할할 줄 수를 지정할 수 있다. (n은 줄 수(=숫자))
2) 파일 합병
$ cat 파일1 파일2 > 파일3: 파일1과 파일2의 내용을 붙여서 새로운 파일3을 만들어 준다.
$ paste [-s] [-d구분문자] 파일 : 여러 파일들을 병합하여 하나의 파일을 만들어 준다.
-s : 한 파일 끝에 다른 파일 내용을 덧붙인다.
-d구분문자 : 어떠한 문자로 열을 구분하는지 지정한다. 기본값은 탭 문자이다.
<grep 명령어 실습>
<sort 명령어 실습>
/etc/passwd의 계정명의 오름차순으로 정렬하여 파일에 저장하기
/etc/passwd 파일의 첫번째 필드의 단어를 기준으로 알파벳 순서로 정렬되어 -o 옵션을 이용하여 passwd.sort1 파일을 생성하였다. 그리고 실제로 a b c d .. 순서로 정렬된 것을 확인할 수 있다.
/etc/passwd의 파일의 UID의 알파벳순으로 정렬하여 파일에 저장하기
실제로 3번째 필드의 값이 108 -> 109 ... -> 113 -> 114 등 오름차순으로 잘 정렬된것을 확인할 수 있다.
<find 명령어 실습>
1) find 명령어를 사용하여 /etc 디렉터리의 모든 파일 중 심볼릭 링크 파일들만을 상세하게 리스트하기
'Computer Science > Linux' 카테고리의 다른 글
(6) BASH 스크립트 (0) | 2021.11.15 |
---|---|
(5) 유틸리티 (0) | 2021.11.15 |
Linux(1) 유닉스 기본 명령어 (0) | 2021.09.12 |