확장 및 검색

onebbu·2023년 3월 23일
0

리눅스

목록 보기
2/6

리눅스 메타문자

  • ~: 홈 디렉토리

  • .: 현재 디렉토리

  • ..: 상위 디렉토리

  • #: 주석

  • $: 쉘 변수

  • *: 문자열 와일드 카드
    예시 이미지(txt파일을 합쳐서 출력)

  • ?: 한 문자 와일드 카드
    예시 이미지(app+한문자인 파일 리스트)

  • []: 문자 범위 지정
    예시 이미지

  • {}: 특정 범위(파일 생성시 사용)

    morning 또는 afternoon으로 시작 & day & 1~30번 파일 생성


검색

locate

  • 사용법 : locate + 파일명(일부도 가능)
  • 파일명 검색 명령어
  • 초기에 sudo apt install mlocate 명령어를 통해 설치
  • 파일명에 대한 데이터베이스를 통해 검색하여 찾아냄
  • 파일 삭제 직후 -e 옵션을 통해 파일이 실제로 존재하는지 확인 가능
  • 데이터베이스는 정기적으로 업데이트 / 수동으로도 가능; 수동 DB업데이트 명령어: sudo updatedb

find

  • 인자가 없을 경우 현재 위치 및 하위 디렉토리까지 모든 파일 리스트를 출력(ls는 현재 디렉토리의 파일 리스트만 출력)
  • find | wc -l : 모든 파일 개수
  • 특정 경로 지정하여 검색 가능
  • find -type f: 현재 디렉토리 제외 하위 디렉토리의 파일 리스트
  • find -type f: 현재 디렉토리 제외 하위 디렉토리 리스트

    파일명으로 검색

    • find -name "파일명": 파일명 검색, 와일드카드(*,? 등) 사용 가능, 대소문자 구분
    • find -iname "파일명": 파일명 검색, 와일드카드(*,? 등) 사용 가능, 대소문자 구분 안함
  • size 옵션: 파일명으로 나온 결과값에서 사이즈로 필터링(예시: find -size +1G), 사용 예시: 용량 부족시 삭제
  • empty 옵션: 빈 디렉토리 검색(빈 디렉토리 삭제시 사용)

타임스탬프

mtime

  • 최종 수정 시간
  • 파일 이동, 이름 변경시 타임스탬프 변경 X
  • find 옵션: mmin, mnewer, mtime

ctime

  • 최종 메타 변경 시간
  • 파일 이동, 이름, 권한, 내용 변경시 타임스탬프 변경
  • find 옵션: cmin, cnewer, ctime

atime

  • 접속 시간
  • 파일을 읽을 때 갱신
  • find 옵션: amin, anewer, atime

현재 날짜 기준 이전 시점 파일 생성

  • touch 파일명 -d "1 week ago": 일주일전 최종 수정된 파일("3 days ago, 2days ago 가능) => 시점은 mtime

find + 논리연산자

not 연산자

  • -not 또는 ! 으로 사용
  • find ~ -not name ".txt"(find ~ ! name ".txt"): txt가 아닌 파일 검색
  • find -cmin -60 -not ".log"(find -cmin -60 ! ".log"): 60분 이내에 수정했으면서 로그파일이 아닌 파일(묵시적으로 -and 사용)

or 연산자

  • find ~ -iname "tue" -or iname "mon": tue로 시작하거나 mon으로 시작하는 파일

find & 명령어 수행

find -exec command {};

  • command 뒤의 대괄호({})는 명시한 command에 대한 각각의 경로 표시 역할
  • 한번에 실행(심각한 오류 발생 가능성 있음)
  • 예시: find ~ type f -empty -exec command '{}' ';': find에 전달하는 결과에 대해(결과가 3개일 경우) 파일 1,2,3에 대한 ls -l

find -ok command {};

  • 개별 파일에 대한 실행을 물어봄

xargs

  • 표준 입력을 받아 빌드하고, 실행
  • 표준 입력의 결과를 꾸러미 형식으로 바꿔서 딱 한번만 실행

0개의 댓글