Fd-find

1 개요[ | ]

fd-find
fd
  • Rust로 작성한 find 명령 호환 명령. 멀티 쓰레드로 동작하여 경우에 따라 find에 비해 빠른 결과를 얻을 수 있다.
  • find 명령 완전한 대체는 할 수 없는 상태 (2018년 11월 2일 기준)
    • 파일 소유권(uid), 권한(perm), 파일비교(newer), 액세스타임(atime) 등 자주 쓰이지 않지만 있으면 매우 편한 옵션 부재
      • 8.1.0 에서 uid에 해당하는 owner(-o, --owner) 옵션 추가
    • 더 짧은 명령어를 제공한다면서 find '-mtime' 옵션(파일변경시간)을 '--changed-within', '--changed-before'로 제공.

2 예제[ | ]

<pattern>에 정규표현식 사용 가능, -E <pattern>은 정규표현식 사용 불가

  • 현재 경로의 logs 디렉토리에서 zip, gz 압축 파일만 찾고 싶은 경우
find 사용시
find ./logs -type f \(  -name "*zip" -or  -name "*gz" \)
fd 사용시
fd -t f '.*\.zip|.*\.gz' ./logs
→ 정규표현식 사용 가능
  • 현재 경로의 logs 디렉토리에서 3개월 넘은, 1메가 크기 이상의 로그 파일을 압축해서 보관하고 싶은 경우. 이미 압축된 파일은 제외해야 하는 상황을 가정.
find 사용시
find ./logs -type f -mtime +90 ! \(  -name "*zip" -or  -name "*gz" -or  -name "*tgz" \) -size +1M  -exec pigz {} \;
fd 사용시
fd -E '*zip' -E '*gz' -E '*tgz' -p "./logs" -t f --changed-before 3month -S +1m -x pigz {} \;
→ '-or'가 없고, 패턴을 묶는 '\( \)'가 없다. not (!)도 없음.
→ -E, --exclude 옵션의 패턴은 정규표현식 적용이 안 됨.

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}