- Personal_Study
- 오블완
- Artificial_Intelligence
- Image_classification
- pytorch
- Android
- 티스토리챌린지
- Java
- Database_Design
- study
- Unix_System
- app
- 2023_1st_Semester
- Python
- programmers
- 리눅스마스터2급
- codingTest
- Univ._Study
- Kubernetes
- cloud_computing
- tensorflow
- Linux
- C
- Algorithm
- datastructure
- SingleProject
- 자격증
- c++
- Baekjoon
- Operating_System
코딩 기록 저장소
[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 |