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'로 제공.
- 파일 소유권(uid), 권한(perm), 파일비교(newer), 액세스타임(atime) 등 자주 쓰이지 않지만 있으면 매우 편한 옵션 부재
2 예제
<pattern>에 정규표현식 사용 가능, -E <pattern>은 정규표현식 사용 불가
- 현재 경로의 logs 디렉토리에서 zip, gz 압축 파일만 찾고 싶은 경우
find 사용시
Bash
Copy
find ./logs -type f \( -name "*zip" -or -name "*gz" \)
fd 사용시
Bash
Copy
fd -t f '.*\.zip|.*\.gz' ./logs
- → 정규표현식 사용 가능
- 현재 경로의 logs 디렉토리에서 3개월 넘은, 1메가 크기 이상의 로그 파일을 압축해서 보관하고 싶은 경우. 이미 압축된 파일은 제외해야 하는 상황을 가정.
find 사용시
Bash
Copy
find ./logs -type f -mtime +90 ! \( -name "*zip" -or -name "*gz" -or -name "*tgz" \) -size +1M -exec pigz {} \;
fd 사용시
Bash
Copy
fd -E '*zip' -E '*gz' -E '*tgz' -p "./logs" -t f --changed-before 3month -S +1m -x pigz {} \;
- → '-or'가 없고, 패턴을 묶는 '\( \)'가 없다. not (!)도 없음.
- → -E, --exclude 옵션의 패턴은 정규표현식 적용이 안 됨.
3 같이 보기
4 참고
편집자 WikiPo Jmnote 59.10.174.181
로그인하시면 댓글을 쓸 수 있습니다.
- 분류 댓글:
- 리눅스 (19)
CentOS JDK 설치 ― …CentOS JDK 설치 ― ElliottCentOS vsftpd 설치 및 설정 ― …CentOS에서 apt-get 실행해보기 ― …CentOS에서 apt-get 실행해보기 ― 다미안VirtualBox 리눅스 인터넷 연결 ― …VirtualBox 리눅스 인터넷 연결 ― JmnoteVirtualBox 리눅스 인터넷 연결 ― …리눅스 CPU 사용률 확인 ― 동원잉리눅스 JDK 버전 확인 ― …리눅스 JDK 버전 확인 ― Jmnote리눅스 SSH 패스워드 없이 자동 로그인 ― …리눅스 SSH 패스워드 없이 자동 로그인 ― Jmnote리눅스 날짜 기준으로 파일 삭제하기 ― 백승현리눅스 날짜 기준으로 파일 삭제하기 ― Jmnote리눅스 디렉토리 용량 확인 du ― …리눅스 메모리 사용률 확인 ― 최재완리눅스 메모리 사용률 확인 ― Jmnote좀비 프로세스 찾기, 죽이기 ― 불량펭귄