태그 보관물: ls

ls

특정 확장자를 가진 특정 디렉토리의 총 파일 수 계산 싶습니다. 다음 명령을 받고 있습니다. ls -F |grep -v

“.mp4″확장자로 끝나는 특정 디렉토리의 총 파일 수를 계산하고 싶습니다.

다음 명령을 받고 있습니다.

ls -F |grep -v / | wc -l

특정 디렉토리의 모든 파일을 계산하지만 확장자가 .mp4 인 파일 수를 원합니다.

그것에 대한 우분투 명령이 있습니까?



답변

여기서 당신은 이런 식으로 할 수 있습니다

ls -lR /path/to/dir/*.jpg | wc -l

이것은 당신에게 계산을 제공합니다


답변

불행히도이 양성 문제는 모든 파일 이름을 지원하고 이식 가능한 방식으로 해결하기 어렵습니다. 이것은 안전합니다 (숨겨진 파일, 공백을 포함하는 경로, 대시 및 줄 바꿈 처리) 및 POSIX 호환 :

find /path/to/directory -mindepth 1 -type f -name "*.mp4" -printf x | wc -c

재귀 적이기를 원하지 않으면 간단히 추가하십시오 -maxdepth 1.

ls출력을 구문 분석해서는 안됩니다 .

테스트:

$ cd -- "$(mktemp -d)"
$ touch -- -foo.mp4 .bar.mp4 .bat.mp4 'baz.mp4
> ban.mp4'
$ find . -mindepth 1 -type f -name "*.mp4" -exec printf x \; | wc -c
4

허용 된 답변 과 비교하십시오 .

$ ls -lR ./*.mp4 | wc -l
3

또는 다른 제안 :

$ find . -name "*.mp4" | wc -l
5
$ ls -1 *.mp4 | wc -l
ls: invalid option -- '.'
Try 'ls --help' for more information.
0
$ find . -name "*.mp4" | wc -c # Answer fixed at a later time
51
$ find . -name "*.mp4" | wc -l
5
$ find . | grep -i ".mp4$" | wc -l
5
$ ls . | grep ".mp4$" | wc -l
3

답변

이것은 확장명으로 모든 파일을 순서대로 찾고 정렬하고 나열합니다.

find . -type f | sed 's/.*\.//' | sort | uniq -c

답변

다음 명령으로 매우 간단하다고 생각합니다.

$ find . -name "*.mp4" | wc -l
8

또는

$ find . | grep -i ".mp4$" | wc -l
8

위의 명령은 파일 및 디렉토리 이름의 수를 계산한다고 생각합니다. *.mp4

-type f옵션 find을 다음과 같이 매개 변수로 사용하는 것이 좋습니다 .

$ find . -name "*.mp4" -type f | wc -l
8

또한 ls -lR사용할 수 있습니다find .


답변

사용할 수 있습니다 ls -1 *.mp4 | wc -l.

그러면에 끝나는 모든 파일이 나열되고 .mp4각 파일을 새 줄 ( ls -1 *.mp4) 에 인쇄 wc하고 -l플래그를 사용하여 새 줄 수를 세는 출력을 파이프합니다 .


답변

.mp4가 포함 된 파일 목록이 표시됩니다.

ls /path/to/directory | grep ".mp4$"

와 결합 wc -l하면 계산할 수 있습니다

ls /path/to/directory | grep ".mp4$" | wc -l

하위 디렉토리를 포함하도록 검색하려는 경우

ls -lR /path/to/directory | grep ".mp4$" | wc -l

답변

bash에서 glob가있는 배열을 사용하는 한 가지 차가운 방법은 다음과 같습니다.

$ files=( *.mp4  )
$ echo ${#files[@]}
30