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