SQL과 같은 쿼리가있는 파일을 찾으십시오
전통적인 find 와 ls 완전히 대체하는 경향이 없지만 Fselect는 다음과 같은 멋진 기능을 가지고 있습니다.
.gitignore , .hgignore 및 .dockerignore 지원 (실험)더 많은 것이 진행 중입니다!
cargo install fselect 실행합니다 @asm0dey 덕분에 AUR 패키지
@4censord 덕분에 Aur Bin 패키지
@filalex77 덕분에 nixpkgs 에서 fselect
무슬림이있는 정적 빌드.
정적으로 사전 컴파일 된 바이너리는 Github 다운로드에서 사용할 수 있습니다.
winget install -e --id fselect.fselect 실행하십시오 choco install fselect 실행하십시오 scoop install fselect 실행하십시오 brew install fselect 실행하십시오 sudo port selfupdate
sudo port install fselect
fselect [ARGS] COLUMN[, COLUMN...] [from ROOT[, ROOT...]] [where EXPR] [group by COLUMNS] [order by COLUMNS] [limit N] [into FORMAT]
fselect -i
보다 자세한 설명. 먼저 예를보십시오.
임시 또는 구성 파일 찾기 (전체 경로 및 크기) :
fselect size, path from /home/user where name = '*.cfg' or name = '*.tmp'
Windows 사용자는 인용문을 생략 할 수 있습니다.
fselect size, path from C:Usersuser where name = *.cfg or name = *.tmp
또는 모든 인수를 다음과 같은 인용문에 넣습니다.
fselect "name from /home/user/tmp where size > 0"
공백이있는 디렉토리 이름 내에서 검색합니다 (백 티크도 지원됩니다) :
fselect "name from '/home/user/dir with spaces' where size > 0"
fselect "name from `/home/user/dir with spaces` where size > 0"
또는 단순히 단일 인용문을 피하십시오.
fselect name from '/home/user/dir with spaces' where size gt 0
파일 크기를 지정하고 절대 경로를 가져오고 결과에 추가하십시오.
cd /home/user
fselect size, abspath from ./tmp where size gt 2g
fselect fsize, abspath from ./tmp where size = 5m
fselect hsize, abspath from ./tmp where size lt 8k
fselect name, size from ./tmp where size between 5mb and 6mb
더 복잡한 쿼리 :
fselect "name from /tmp where (name = *.tmp and size = 0) or (name = *.cfg and size > 1000000)"
집계 함수 (원하는 경우 곱슬 버팀대를 사용할 수 있고 일반 괄호와 결합 할 수도 있습니다) :
fselect "MIN(size), MAX{size}, AVG(size), SUM{size}, COUNT(*) from /home/user/Downloads"
형식 기능 :
fselect "LOWER(name), UPPER(name), LENGTH(name), YEAR(modified) from /home/user/Downloads"
가장 오래된 파일의 해를 얻으십시오.
fselect "MIN(YEAR(modified)) from /home/user"
공백으로 파일을 해결 해야하는 경우 단일 따옴표를 사용하십시오.
fselect "path from '/home/user/Misc stuff' where name != 'Some file'"
녹 맛의 정기적 인 표현이 뒷받침됩니다.
fselect name from /home/user where path =~ '.*Rust.*'
정규 표현을 부정 :
fselect "name from . where path !=~ '^./config'"
간단한 글로그는 자동으로 확장되고 = 및 != 연산자와 함께 작동합니다.
fselect name from /home/user where path = '*Rust*'
클래식 :
fselect "path from /home/user where name like '%report-2018-__-__???'"
regexps 비활성화로 검색 할 연산자 정확한 일치 :
fselect "path from /home/user where name === 'some_*_weird_*_name'"
날짜별로 파일 찾기 :
fselect path from /home/user where created = 2017-05-01
fselect path from /home/user where modified = today
fselect path from /home/user where accessed = yesterday
fselect "path from /home/user where modified = 'apr 1'"
fselect "path from /home/user where modified = 'last fri'"
오후 3시에서 오후 4시 사이의 간격으로 생성 된 모든 파일과 일치하도록보다 구체적으로하십시오.
fselect path from /home/user where created = '2017-05-01 15'
더 구체적으로 :
fselect path from /home/user where created = '2017-05-01 15:10'
fselect path from /home/user where created = '2017-05-01 15:10:30'
가능한 날짜 및 시간 간격 (5 월 1 일부터 업데이트 된 모든 것을 찾습니다) :
fselect path from /home/user where modified gte 2017-05-01
기본값은 현재 디렉토리입니다.
fselect path, size where name = '*.jpg'
여러 위치 내에서 검색 :
fselect path from /home/user/oldstuff, /home/user/newstuff where name = '*.jpg'
최소 및/또는 최대 깊이가 지정되어 있습니다 ( depth 는 maxdepth 와 동의어입니다) :
fselect path from /home/user/oldstuff depth 5 where name = '*.jpg'
fselect path from /home/user/oldstuff mindepth 2 maxdepth 5, /home/user/newstuff depth 10 where name = '*.jpg'
선택적으로 Symlinks를 따릅니다.
fselect path, size from /home/user symlinks where name = '*.jpg'
아카이브 내 검색 (현재 zip-archives 만 지원됩니다) :
fselect path, size from /home/user archives where name = '*.jpg'
또는 조합 :
fselect size, path from /home/user depth 5 archives symlinks where name = '*.jpg' limit 100
.gitignore 또는 .hgignore 지원을 활성화합니다.
fselect size, path from /home/user/projects gitignore where name = '*.cpp'
fselect size, path from /home/user/projects git where name = '*.cpp'
fselect size, path from /home/user/projects hgignore where name = '*.py'
이미지 크기로 검색 :
fselect CONCAT(width, 'x', height), path from /home/user/photos where width gte 2000 or height gte 2000
정사각형 이미지 찾기 :
fselect path from /home/user/Photos where width = height
알려진 이름 부분이 있지만 알려지지 않은 확장자가있는 이미지를 찾으십시오.
fselect path from /home/user/projects where name = "*RDS*" and width gte 1
구식 랩 MP3 파일 찾기 :
fselect duration, path from /home/user/music where genre = Rap and bitrate = 320 and mp3_year lt 2000
공통 파일 확장 단축키 :
fselect path from /home/user where is_archive = true
fselect path, mime from /home/user where is_audio = 1
fselect path, mime from /home/user where is_book != false
부울 열을 더 간단하게 사용하는 방법 :
fselect path from /home/user where is_doc
fselect path from /home/user where is_image
fselect path from /home/user where is_video
위험한 권한이있는 파일 찾기 :
fselect mode, path from /home/user where other_write or other_exec
fselect mode, path from /home/user where other_all
파일 모드에서 간단한 글로벌 유사 표현식 또는 정규 표현식이 가능합니다.
fselect mode, path from /home/user where mode = '*rwx'
fselect mode, path from /home/user where mode =~ '.*rwx$'
소유자의 UID 또는 GID로 파일을 찾으십시오.
fselect uid, gid, path from /home/user where uid != 1000 or gid != 1000
또는 소유자 또는 그룹 이름에 따라 :
fselect user, group, path from /home/user where user = mike or group = mike
특수 파일 찾기 :
fselect name from /usr/bin where suid
fselect path from /tmp where is_pipe
fselect path from /tmp where is_socket
XATTRS가있는 파일을 찾고 특정 XATTR이 있는지 확인하거나 그 가치를 얻으십시오.
fselect "path, has_xattrs, has_xattr(user.test), xattr(user.test) from /home/user"
임의의 텍스트를 열로 포함시킵니다.
fselect "name, ' has size of ', size, ' bytes'"
그룹 결과 :
fselect "ext, count(*) from /tmp group by ext"
주문 결과 :
fselect path from /tmp order by size desc, name
fselect modified, fsize, path from ~ order by 1 desc, 3
마지막으로 결과를 제한합니다.
fselect name from /home/user/samples limit 5
형식 출력 :
fselect size, path from /home/user limit 5 into json
fselect size, path from /home/user limit 5 into csv
fselect size, path from /home/user limit 5 into html
MIT/APACHE-2.0
JetBrains 아이디어 오픈 소스 라이센스에 의해 지원됩니다