하고 싶지 않다주식회사2Mio보다 큰 파일을 검색합니다.
ag 명령에 대한 --file-size 플래그와 같은 것을 찾을 수 없지만 이를 알 수 있는 방법이 있습니까?
나는 많이 얻는다
ERR: Skipping foo.bar: pcre_exec() can't handle files larger than 2147483647 bytes.
답변1
zsh
뿐만 아니라 다른 명령과 함께 를 사용 하면 ag
다음을 수행할 수 있습니다.
ag -- pattern **/*(.LM-3)
크기가 2MiB 이하인 **/
일반 파일( )을 (재귀적으로) 보려면 ( 정수 ebi바이트로 반올림된 길이 는 ( ) 보다 엄격하게 작음 ).
L
L
M
-
3
이는 숨겨진 파일을 제외하지만, files 및 co 와 일치하는 파일의 경우 ag
, files 및 co 와 일치하는 파일은 .ignore
문자 그대로 전달될 때 제외되지 않습니다.
GNU 시스템의 bash 또는 기타 Korn과 유사한 셸에서는 항상 다음을 수행하는 함수나 스크립트를 사용할 수 있습니다.
ag_in_small_non_hidden_files() {
xargs -r0a <(
LC_ALL=C find . -name '.?*' -prune -o -type f -size -3M -print0
) ag "$@"
}
동등한 작업을 수행합니다(파일 목록은 정렬되지 않지만 ag
파일 목록은 기본적으로 다시 정렬되지 않습니다. 목록을 정렬하려면 항상 find
출력을 파이프할 수 있습니다).sort -z
답변2
2GiB 이상의 파일을 사전 스캔하여 .ignore
검색 중인 디렉터리 구조에 쓸 수 있습니다.
예를 들어
find . -size "+$(( 2 * 1024 * 1024 * 1024 - 1 ))c" > .ignore
줄 바꿈, 와일드카드, 백슬래시, 따옴표, 후행 공백 등 까다로운 문자가 경로에 포함된 파일에는 경고가 적용됩니다.
2MiB 보다 엄격하게 큰 파일의 경우 사용할 수 있습니다find
GNU를 포함한 일부 구현을 보고되는 파일 크기 는 1MiB 이하입니다.find
find . -size +2M
-size -2M