- Operating_System
- tensorflow
- study
- 오블완
- Algorithm
- 티스토리챌린지
- 리눅스마스터2급
- programmers
- Kubernetes
- Personal_Study
- Baekjoon
- 자격증
- Android
- Python
- Unix_System
- Database_Design
- cloud_computing
- Java
- C
- 2023_1st_Semester
- Image_classification
- Univ._Study
- datastructure
- Linux
- SingleProject
- c++
- codingTest
- app
- Artificial_Intelligence
- kubeflow
코딩 기록 저장소
[23-01/유닉스 시스템] 파일과 디렉토리 검색하기 본문
1. 파일 내용 검색 : grep/egrep/fgrep
grep 사용법
grep [ 옵션 ] 패턴 파일명들
- global regular expression print
- 지정한 파일에 특정 문자열(패턴)이 들어있는지 검색
■ 패턴
- 문자, 문자열, 문장, 정규표현식 (regular expression)
■ 옵션
| 옵션 | 기능 |
| -i | 대소문자를 무시하고 검색 |
| -l | 해당 패턴이 들어있는 파일 이름을 출력 |
| -n | 각 라인의 번호도 함께 출력 |
| -v | 명시된 패턴과 일치하지 않는 줄을 출력 |
| -c | 패턴과 일치하는 라인수 출력 |
| -w | 패턴이 하나의 단어로 된 것만 검색 |
정규 표현식
- 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어
- 주의 : 패턴을 작은 따옴표 ' '로 꼭 감싸야 함
■ 구성 요소
- 앵커 (Anchor) : 검색시 한 줄에서 패턴의 위치를 표현 (^, $)
- 문자 집합 (Character Set) : 하나이상의 무자들을 표현 (알파벳, 숫자,.,[],..)
- 변환자 (Modifier) : 이전 문자 집합의 반복횟수 지정(*)
■ 특수문자
| 문자 | 의미 | 예 | 결과 |
| ^ | 라인의 시작 | '^문자열' | 문자열로 시작하는 모든 행 |
| $ | 라인의 끝 | '문자열$' | 문자열로 끝나는 모든 행 |
| . | 한 글자 | 'a...b' | 한글자 대응, a로 시작해서 b로 끝나는 5글자 검색 |
| [ ] | 괄호안의 글자중 하나 | '[Pp]attern' | Pattern 또는 pattern이 나타나는 라인 검색 |
| [^] | 괄호 안에 있는 글자가 아닌 글자 | '[^a-m]att' | att앞에 a부터 m까지 나오지 않는 라인 검색 |
| * | 앞의 항목이 없거나 여러 번 반복 | 'ab*' | a다음에 b가 없거나 반복적으로 나타나는 라인 검색 |
egrep 사용법
egrep [ 옵션 ] 패턴 파일명들
- extended regular expression을 사용하는 grep 명령
■ 확장된 패턴 표현식 특수 문자
| 메타 문자 | 의미 | 예 | 결과 |
| + | 앞의 글자가 하나 이상 나옴 | '[a-z]+ark' | airpark, dark, bark, shark |
| ? | 없거나 한번 반복 | 'unix[0-9]?' | unix1, unix2, unix, unix9 |
| x|y | x나 y중 하나가 나옴 | 'apple|orange' | apple 또는 orange |
| ( | ) | 문자열 그룹 | '(1|2)+' 'search(es|ing)+' |
1또는 2가 하나이상 searches 또는 searching |
fgrep 사용법
fgrep [ 옵션 ] 문자열 파일명들
- 문자열 검색
● 문자열 내의 모든 문자를 일반 문자로 해석
- 정규 표현식 사용 안함
- 모든 정규 표현식 특수 문자를 문자 그대로 검색
2. 파일 검색 : find
- 사용자가 시스템에 존재하는 특정 파일을 찾을 때 사용
- 검색 범위를 디렉토리 단위로 지정
- 파일의 이름, 소유자, 접근 권한, 생성 일자 등 파일의 속성을 조합하여 검색 가능
- 표현식과 일치하는 파일에 대해 파일의 절대 경로를 출력하거나 특정 명령 실행 가능
파일 찾기 - find
find 경로 검색조건 [ 동작 ]
■ 경로
- 파일을 찾을 디렉토리의 절대, 또는 상대 경로
memo : 현재 디렉토리 .
■ 검색조건
- 파일을 찾기 위한 검색 기준
- and, or를 이용하여 조건 결합 가능
■ 동작
- 파일의 위치를 찾은 후 수행할 동작 지정
- 기본 동작은 파일의 절대 경로를 화면에 출력
■ 경로 설정 예
| 경로 표현 | 찾기 시작 위치 |
| ~ | 홈 디렉토리에서 찾기 시작 |
| . | 현재 디렉토리에서 찾기 시작 |
| /etc | /etc 디렉토리에서 찾기 시작 (절대 경로) |
| / | /(root) 디렉토리에서 찾기 시작 (전체 파일 시스템 검색) |
| unix | unix 디렉토리에서 찾기 시작 (상대 경로) |
■ 파일 종류 검색
| 문자 | 파일종류 | 문자 | 파일종류 |
| d | 디렉토리파일 | b | 블록장치특수파일 |
| f | 일반 파일 | c | 문자장치특수파일 |
| l | 심볼릭링크파일 | s | 소켓파일 |
■ 검색 조건
| 검색조건표현 | 의미 | 기능 |
| -name filename | 파일 이름 | 특정 파일명에 일치하는 파일 검색 메타 문자(*,?)사용도 가능하나 " "안에 있어야 함 |
| -type | 파일 종류 | 특정 파일 종류에 일치하는 파일검색(f,d) |
| -mtime [+|-]n -atime [+|-]n |
수정(접근)시간 | 수정(접근)시간이 +n일보다 오래되거나, -n일보다 짧거나 정확히 n일에 일치하는 파일 검색 |
| -user loginID | 사용자 ID | loginID가 소유한 파일 모든 파일 검색 |
| -size [+|-]n | 파일 크기 | +n보다 크거나, -n보다 작거나, 정확히 크기가 n인 파일 검색(n=512bytes) |
| -newer | 기준 시간 | 기준 시간보다 이후에 생성된 파일 검색 |
| -perm | 사용 권한 | 사용 권한과 일치하는 파일 검색(8진수) |
■ 동작
| 동작 | 정의 |
| -exec 명령 {} ₩; | exec 옵션은 ₩;으로 끝남 검색된 파일은 {} 위치에 적용됨 |
| -ok 명령 {} ₩; | exec의 확인모드 형태 사용자의 확인을 받아야 명령을 적용(rm -i) |
| 화면에 경로명을 출력 (기본 동작) | |
| -ls | 긴 목록 형식으로 검색 결과를 출력 |
■ 검색 조건의 결합 기호
- -a : and (기본)
- -o : or
- ! : not
■ 검색 조건 결합
- -a (and) : 결합 조건을 생략하면 자동으로 and 처리
- -o (or) : 디렉토리거나 이름이 UNIX인 파일
■ 검색된 파일 처리
- -exec : 이후에 지정한 명령 수행 ( -exec와 ₩;사이에 기술된 부분을 수행함 )
3. 명령어 검색 : which
which 명령을 이용한 명령어 검색
which 명령
- 명령어 파일의 위치를 찾아서 경로나 앨리어스를 출력
- PATH 환경 변수로 지정된 경로에서 파일을 찾음
■ 사용법
$which which / $which passwd
'학교 공부 > 유닉스 시스템' 카테고리의 다른 글
| [23-01/유닉스 시스템] 파일 접근 권한 관리하기 (1) | 2023.04.27 |
|---|---|
| [23-01/유닉스 시스템] 배시 셸 활용하기 (2) | 2023.04.27 |
| [23-01/유닉스 시스템] vi 사용법 (0) | 2023.04.25 |
| [23-01/유닉스 시스템] 파일 다루기 (0) | 2023.04.22 |
| [23-01/유닉스 시스템] 디렉토리 다루기 (0) | 2023.04.22 |