약 100000 개의 파일이있는 디렉토리가 있으며 지정된 문자열로 시작하는 모든 파일에서 일부 기능을 수행하려고합니다. 수만 개의 파일과 일치 할 수 있습니다.
나는 시도했다
ls mystring*
그러나 이것은 bash 오류 ‘너무 많은 인수’와 함께 반환됩니다. 다음 계획은
find ./mystring* -type f
그러나 이것은 같은 문제가 있습니다.
코드는 다음과 같아야합니다.
for FILE in `find ./mystring* -type f`
do
#Some function on the file
done
답변
사용하다
find . -name 'mystring*'
답변
ls | grep "^abc"
하위 문자열로 시작 하는 모든 파일 (OP가 특별히 필요한 것)을 제공합니다 abc
.
현재 디렉토리에서만 작동하지만 find
하위 폴더 에서는 재귀 적으로 작동합니다.
문자열로 시작 하는 find
파일에만 사용하려면
찾기 . -이름 ‘abc’*
답변
검색을 파일로만 제한하려면 -type f
검색 에 사용해야 합니다.
-iname
대소 문자를 구분하지 않는 검색 에도 사용하십시오
예:
find /path -iname 'yourstring*' -type f
파이프 부호 또는 xargs없이 결과에 대해 일부 작업을 수행 할 수도 있습니다.
예:
파일을 검색하고 크기를 MB 단위로 표시
find /path -iname 'yourstring*' -type f -exec du -sm {} \;