찾기

2dean·2023년 6월 17일
0

Linux 기초

목록 보기
8/13
post-thumbnail

>locate

locate 데이터베이스는 파일 시스템의 색인 정보를 저장하며, 일반적으로 시스템에서 파일을 검색하기 전에 이 데이터베이스를 참조합니다.

 locate – find filenames quickly
     locate [-0Scims] [-l limit] [-d database] pattern ...

locate 오류!

locate 입력했는데

User
WARNING: The locate database (/var/db/locate.database) does not exist.
To create the database, run the following command:

  sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

Please be aware that the database can take some time to generate; once
the database has been created, this message will no longer appear.

이런 오류가 나왔다!
해당 오류는 "/var/db/locate.database" 위치에 locate 데이터베이스가 존재하지 않아서였다

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

이 명령어 실행하고. 아무일이 없더라도... DB 설치중...이니 조금 기다리자
Load failed: 37: Operation already in progress
zzzz
설치가 다 되면 잘 나온다!

location option

  • -i 대소문자 구분 x
  • -l 결과의 갯수 제한
  • -e 현재 존재하는 파일인지 확인

find

locate 보다 강력하지만 시간이 조금 걸림
실제로 디렉토리 전체나 컴퓨터 전체를 검색
인자 없이 find를 실행하면, 현재 위치부터 시작해 하위 디렉토리의 모든 것들을 표시

filtering

  • -type d : directory
  • -name "" 따옴표 사용, 대소문자 구분
    예시
    홈 디렉토리의 모든 .txt 파일 검색
dduui-MacBookPro:~ ddu$ find ~ -type f -name "*.txt"
  • -size 파일 사이즈로 필터링
    find -size +1G
  • -user 사용자!
  • -empty 빈파일이나 디렉토리

Timestamps

  • mtime : 파일 내용이 마지막으로 바뀐 시간
  • ctime : 파일의 이동, 이름변경, 권한변경시 갱신됨, 파일 내용 변경시에도 갱신됨
  • atime : 파일 접근 시간

Logical Operators

- and 는 묵시적으로 사용하므로 생략함

- or  둘중 하나
> find -name "*chick*" -or -name "*kitty" 

- not !
> find -type -f -not -name "*.html"
 => find -type -f ! -name "*.html"

-exec command{};

find로 찾은 모든 것 대해서 어떤 명령을 수행하는 방법

-exec command{};

-ok 실행여부 묻기

xargs - 딱 한번만 실행

xargs로 실행했을 때는 조금 다릅니다, xargs는
표준 입력의 결과를 꾸러미 형식으로 바꿔서, 이를 딱 한 번만 실행합니다
-exec 보다 효율적일 수 있음 !

xargs 는 표준입력을 받아 인자목록으로 변환함. > 전달가능 하고 표준입력이 불가능한 명령어에 이를 추가해 사용할 수 있음

ex)echo hello | xargs mkdir

profile
냅다 써보는 공부의 흔적😇

0개의 댓글