find
파일 시스템 내에서 파일이나 디렉토리를 검색하는 데 사용됩니다. 이 명령어는 특정 조건에 맞는 파일을 찾을 수 있으며, 검색된 파일에 대해 다양한 작업을 수행할 수 있습니다.
'find' 명령어의 기본 구문은 다음과 같습니다
find [경로] [옵션] [동작]
[경로]는 검색을 시작할 디렉토리의 경로를 지정하며, 기본값은 현재 디렉토리입니다.
[옵션]은 검색 조건을 설정하고,
[동작]은 검색된 파일에 대해 수행할 작업을 지정합니다.
옵션
- -name <파일명>: 지정한 이름과 정확히 일치하는 파일을 검색합니다. 와일드카드(*)를 사용하여 패턴 매칭을 할 수도 있습니다.
- -type <타입>: 지정한 파일 타입과 일치하는 파일을 검색합니다. 일반적인 타입으로는 f (일반 파일), d (디렉토리), l (심볼릭 링크) 등이 있습니다.
- -size <크기>: 지정한 크기에 해당하는 파일을 검색합니다. + 또는 - 기호를 사용하여 크기를 지정하고, c (바이트), k (킬로바이트), M (메가바이트), G (기가바이트) 등의 단위를 사용할 수 있습니다.
- -mtime <시간>: 최종 수정 시간을 기준으로, 지정한 시간 이전에 수정된 파일을 검색합니다. + 또는 - 기호를 사용하여 시간을 지정하고, +n은 n 일보다 오래된 파일, -n은 n 일 이내에 수정된 파일을 의미합니다.
동작
- -print: 검색된 파일을 출력합니다. 기본적으로 모든 검색 결과를 출력하지만, 일부 옵션(예: -delete, -exec)과 함께 사용하여 특정 파일만 출력할 수도 있습니다.
- -delete: 검색된 파일을 삭제합니다.
- -exec <명령어> {} \;: 검색된 파일에 대해 지정한 명령어를 실행합니다. {}는 검색된 파일을 나타내며, \;는 명령어의 끝을 나타냅니다.
find 명령어 예시
1. 파일 이름으로 검색하기:
find /home/user -name myfile.txt
위의 명령어는 /home/user 디렉토리와 그 하위 디렉토리에서 myfile.txt라는 이름의 파일을 검색합니다.
2. 파일 타입으로 검색하기:
find /var/log -type f
위의 명령어는 /var/log 디렉토리와 그 하위 디렉토리에서 일반 파일을 검색합니다.
3. 파일 크기로 검색하기:
find /home/user -size +1M
위의 명령어는 /home/user 디렉토리와 그 하위 디렉토리에서 1메가바이트보다 큰 파일을 검색합니다.
4. 최종 수정 시간으로 검색하기:
find /tmp -mtime -7
위의 명령어는 /tmp 디렉토리와 그 하위 디렉토리에서 최근 7일 이내에 수정된 파일을 검색합니다.
5. 검색된 파일 출력하기:
find /home/user -name "*.txt" -print
위의 명령어는 /home/user 디렉토리와 그 하위 디렉토리에서 확장자가 .txt인 파일을 검색하고, 검색된 모든 파일을 출력합니다.
6. 검색된 파일 삭제하기:
find /tmp -name "tempfile.txt" -delete
위의 명령어는 /tmp 디렉토리와 그 하위 디렉토리에서 tempfile.txt라는 이름의 파일을 검색하고, 검색된 파일을 삭제합니다.
7. 검색된 파일에 대해 명령어 실행하기:
find /home/user -name "*.txt" -exec rm {} \;
위의 명령어는 /home/user 디렉토리와 그 하위 디렉토리에서 확장자가 .txt인 파일을 검색하고, 검색된 파일에 대해 rm 명령어를 실행하여 삭제합니다.
AWK
Awk는 텍스트 처리와 데이터 추출을 위해 사용되는 강력한 명령어입니다. Awk는 행 단위로 작동하며, 입력 데이터를 레코드(record)로 분할하고, 각 레코드를 필드(field)로 분할하여 작업을 수행합니다. Awk는 주로 텍스트 파일의 데이터를 조작하고 분석하는 데 사용됩니다.
Awk의 기본 구문은 다음과 같습니다:
awk '패턴 { 동작 }' 파일명
패턴은 작업을 수행할 조건을 지정하고,
[동작]은 해당 패턴이 일치하는 경우 실행할 명령어 블록입니다.
[파일명]은 작업을 수행할 대상 파일의 이름입니다. 파일명을 생략하면 Awk는 표준 입력을 사용합니다.
Awk의 개념과 사용 예시
1. 패턴 매칭
Awk는 패턴 매칭을 사용하여 특정 조건을 검사하고 해당 조건에 일치하는 레코드에 대해 작업을 수행합니다. 예를 들어, 다음은 "John"이라는 이름을 가진 레코드를 출력하는 Awk 명령어입니다
awk '/John/ { print }' data.txt
2. 필드 조작
레코드는 기본적으로 공백 문자를 기준으로 필드로 분할됩니다. 필드에는 $1, $2, $3 등과 같이 숫자로 참조할 수 있습니다. 예를 들어, 다음은 첫 번째 필드를 출력하는 Awk 명령어입니다:
awk '{ print $1 }' data.txt
3. 내장 변수
Awk는 몇 가지 유용한 내장 변수를 제공합니다. 몇 가지 중요한 변수는 다음과 같습니다:
- NR: 현재 레코드 번호를 나타냅니다.
- NF: 현재 레코드의 필드 수를 나타냅니다.
- FS: 필드 구분자를 나타냅니다. 기본적으로 공백 문자입니다.
예를 들어, 다음은 파일의 각 레코드 번호와 필드 수를 출력하는 Awk 명령어입니다:
awk '{ print "Record:", NR, "Fields:", NF }' data.txt
4. 조건문과 반복문
Awk는 if-else 문과 for, while과 같은 반복문도 지원합니다. 이를 사용하여 조건에 따라 특정 작업을 수행할 수 있습니다. 예를 들어, 다음은 "age" 필드가 30 이상인 레코드를 출력하는 Awk 명령어입니다:
awk '$3 >= 30 { print }' data.txt
'INFRA > LINUX' 카테고리의 다른 글
[LINUX]tty 와 pts 에 대하여 (0) | 2023.07.03 |
---|---|
RAID에 대하여 (0) | 2023.06.27 |
[LINUX]LVM에 대하여 (0) | 2023.06.26 |
Docker에 대해서 (0) | 2023.06.23 |
리눅스 명령어2 (0) | 2023.06.22 |