[Linux] 파일 검색 실습

mommers·2026년 1월 30일

Linux

목록 보기
9/59


파일 검색 (find)

  • 학습: 리눅스에서 가장 강력한 검색 도구.
  • 실습:
    • 파일명으로 찾기: find /etc -name "*.conf"
    • 크기로 찾기: 내 홈 폴더에서 100MB 이상인 파일 찾기 (size +100M).


찾은 파일만 ls -al을 통해서 보기

ls 명령어는 파이프(|)로 넘어온 데이터를 파일 목록으로 받아들이지 못하기 때문에, 중간에 xargs 라는 명령어가 필요합니다.

xargs는 파이프로 넘어온 "글자(Text)"를 "명령어의 인자(Argument)"로 변환해주는 역할을 합니다.

1. 파이프를 꼭 써야 한다면 (xargs 사용)

Bash

sudo find /etc -size +100k | xargs ls -al

설명:

  1. find가 파일 경로들을 텍스트로 뱉어냅니다.
  2. | (파이프)가 그 텍스트를 넘겨줍니다.
  3. xargs가 그 텍스트를 받아서 ls -al 파일1 파일2 파일3... 처럼 문장을 완성해서 실행해줍니다.


2. 파이프 없이 하는 더 좋은 방법 (exec 사용)

xargs보다 공백 문자 처리가 안전하고 확실한 방법입니다.

Bash

sudo find /etc -size +100k -exec ls -al {} +

  • exec: 찾은 파일마다 명령어를 실행해라.
  • {}: 찾은 파일 이름이 들어갈 자리.
  • +: 파일들을 최대한 모아서 한 번에 실행해라 (xargs와 같은 효과).

3. 가장 쉬운 방법 (find 자체 기능)

사실 find 명령어 자체에 ls -l과 비슷한 기능이 내장되어 있습니다.

Bash

sudo find /etc -size +100k -ls

  • ls: 찾은 파일의 상세 정보를 바로 출력함 (ls -dils와 유사한 형식).


최근 10분 내 수정된 파일 찾기

명령어:

Bash

find . -type f -mmin -10

옵션 설명:

  • .: 현재 디렉터리부터 검색.
  • type f: 파일만 검색 (디렉터리 제외). type d
  • mmin -10: 10분 미만(최근)에 수정됨.
    • 10: 10분 이내 (현재 ~ 10분 전)
    • +10: 10분 이전 (10분 전 ~ 과거)

비교 (분 vs 일):

  • mmin -10: 10 이내.
  • mtime -1: 24시간(1일) 이내.

찾은 파일을 바로 삭제(delete)하거나 이동(exec mv) 시키는 명령어 조합

1. 찾아서 바로 삭제 (Delete)

가장 쉽고 빠른 방법 (-delete 옵션)

Bash

find . -name *.tmp -or -name *.c

find . -name "*.tmp" -delete

음 찾아서 practice 안에 있는 파일들은 남기고 싶었는데 실수해서 전부 삭제되었슴다..

  • 설명: 검색된 파일을 즉시 삭제.

고전적인 방법 (rm 명령어 실행)

Bash

find . -name "*.tmp" -exec rm {} \;
  • 설명: exec 뒤에 rm 명령어를 수행.

2. 찾아서 이동 (Move)

특정 폴더로 이동 (mv 명령어 실행)

Bash

find . -name "*.log" -exec mv {} ./backup/ \;

이미 옮겨놨나봅니다

  • {}: find가 찾아낸 파일 이름이 들어갈 자리.
  • ./backup/: 이동할 목적지 폴더.
  • \;: 명령어의 끝을 알림 (역슬래시 필수).

⚠️ 주의사항 (Safety First)

삭제나 이동 명령어를 실행하기 전에, 반드시 ls로 먼저 확인하세요.

Bash

# 1. 먼저 확인 (안전)
find . -name "*.tmp" -ls

# 2. 확인 후 실행
find . -name "*.tmp" -delete
profile
임베디드 개발자가 되기 위해 공부중입니다!

0개의 댓글