a부터 g까지 시작하는 모든 파일을 계산하는 방법은 무엇입니까?

a부터 g까지 시작하는 모든 파일을 계산하는 방법은 무엇입니까?

리눅스 명령어에 관해 질문이 있습니다. a부터 g까지 시작하는 모든 파일을 계산하는 방법은 무엇입니까?

답변1

LC_ALL=C
set -- [a-gA-G]*
if [ "$1" = '[a-gA-G]*' ]; then
  echo 0
else
  echo "$#"
fi          

답변2

한 줄짜리 셸 명령으로 이 작업을 수행할 수 있습니다.

find / -name '[abcedfg]*' -print | wc -l

find한 디렉터리 또는 다른 디렉터리를 읽을 수 있는 권한이 없다는 메시지가 표시되지만 이름이 이 7자로 시작하는 파일 수를 얻을 수 있습니다.

답변3

(Linux를 실행하고 있기 때문에 사용하고 있는) 이 ls명령의 GNU 구현은 현재 디렉터리에서 문자 ag로 시작하는 모든 파일을 찾습니다.

ls --ignore='[!a-g]*'

범위에 있는 문자로 시작하지 않는 모든 파일을 무시하도록 지시합니다 [a-g]. !필터를 뒤집어 보세요 . *지시하다

다음으로 출력을 실행하여 wc -l행 수를 계산합니다.

완전한 명령은 다음과 같습니다:

ls --ignore='[!a-g]*' | wc -l

이 솔루션은 하위 디렉터리에 중복되지 않습니다.

답변4

ls -1 [a-g]* | wc -l

왜 그럴까요? 아마도 당신은 가장 간단한 대답을 원할 것이기 때문에 이것은 내가 가장 많이 사용하는 명령인 디렉토리를 세지 않거나, 하위 디렉토리를 검색하거나, 파일 이름을 대문자로 사용하는 것에 대해 걱정할 필요가 없다고 가정합니다.

관련 정보