I have a 디렉터리입니다 수가 많은 파일. # 39, 내가 don& 제공하십시오 전환하십시오 'ls' 볼 수 없다. 일부 명령행을 magic to get a 파일 수 있나요?
넓은 정의를 이용하여 " file";
ls | wc -l
참고로 이 doesn& # 39, t 카운트입니다 숨겨진 파일과 파일 이름에 포함되어 있는 경우를 don& 개행 문자 # 39, t 자).
숨김 파일을 포함) 을 제외한 '.' 및 '.') 과 함께 문제가 발생하지 않는 줄바꿈 문자, 고전적인 방법은.
find . ! -name . -prune -print | grep -c /
또는 재귀적:
find .//. ! -name . -print | grep -c //
좁은 정의를 파일:
find . -maxdepth 1 -type f | wc -l
아마도 가장 완벽한 'ls' / '는' 페어당 사용하여 오토메이티드 wc
ls -Aq | wc -l
스케쳐내 joyon. 파일이므로 수
ls -q | wc -l
그렇지 않으면.
Afaq 한 출력입니다 ls '에서', '-' 옵션을 터미널 (즉, 이를 '없이 파이핑이 wc') 는 추가되도록.
(ls 비스무트-212 의 '와' 테스트되었습니다 coreutils 8.23)
<! - 모든 언어: 쉬 >.
현재 알고 있는 경우 디렉토리에는 하나 이상의 비사양 숨겨짐 파일:
set -- *; echo "$#"
이것은 분명히 모든 일반화 글롭.
이 때문에, 때때로 불행한 부작용이 있는 스크립트입니다 덮어씁니다 위치 매개변수입니다. 사용하는 서브셸 또는 함께 해결할 수 있습니다 (Bourne / POSIX 버전) 는 다음과 같은 함수
count_words () {
eval 'shift; '"$1"'=$#'
}
count_words number_of_files *
echo "There are $number_of_files non-dot files in the current directory"
대안 솔루션으로 '는 $ (ls - d - wc 뻦)'. 명령이 로 줄일 수 있다 '는' ' 글롭 경우 $ (wc ls - l) '. 하지만, 여기에 it makes me 'ls' 항상 불안한 구문 분석 결과를 통해 파일 이름을 deltamove 노력해야 할 줄 바꿈, 또는 dell. 저들이요 이스케이프합니다 'ls' t 컨테인먼트하는 don& # 39. 그리고 '$ (ls - d - 2> / dev / nulll wc 뻦)' 이 (가) 의 장점은 취급료 정상적으로 글롭 일치하지 않는 경우 (즉, 되돌려줍니다 0 이 경우, 반면 '' 설정되었습니다 가로장 설치 등등 테스트 방법을 사용할 때는 글롭 경우 비워 둘 수도 있다).
만약 파일 이름이 개행 문자를 사용하는 방법이 있을 수 있으며, 대체 '$ (ls - d - c / 그렙 ./*)'.
이러한 모든 솔루션을 반군지역 의존하는 데 실패하고 글롭 'ls' 의 확장 한 경우 오류가 너무 많아 long_ _argument 목록에 일치하는 파일을.
I 'm not 발견되지 않지만,' du inodes 유용한 I& # 39 어떤 버전의 'du' 반드시 필요합니다. 대체 방법을 사용하여 '보다' 찾기 '와' wc, wc, wc 크게 한다.
17.10 unbuntu 대한 다음 작업:
du --inodes # all files and subdirectories
du --inodes -s # summary
du --inodes -d 2 # depth 2 at most
'-' 결합하여 정렬하려면 nr 정렬하려면 수에 따라 내림차순을 redboot*용 inodes.
나무를요 명령을 설치 후 바로 유형:
'트리'
숨김 파일을 스케쳐내 너무:
'a' 트리
데비안 / 민트 (mint / ubuntu linux mm_mail_doc. 사용하는 경우 다음 명령을 설치처 나무를요 명령:
sudo apt 확보하십시오. install 진단트리는 ''
옵션 - L 은 specifying 데사용됩니다 최대 디스플레이 수준의 디렉토리에는 진단트리 뿐만 아니라 나무를요 명령을 높여줍니까 수를 고려할 때 파일, 디렉터리 수 많은 수준의 디렉터리 트리 원하는 대로.
word_count () { local c=("$@"); echo "${#c[@]}"; }
file_count=$(word_count *)
13,923 어레이에는 만드는 요소 (that& # 39 의 경우 파일 수를 몇 가지).
Linux 에서 할 수 있는 매우 강력한 명령을 처리할 수 있는 파일 이름에 사용 할 줄 바꿈.
find -maxdepth 1 -type f -print0 | tr -cd '\0' | wc -c
이를 통해 우리에게 온 잘 알려지지 의 구문 분석 'ls' 출력입니다.
관련.
일부 답변을 하는 만큼 이번에는 전에 향상합니다 명시적으로.
$ tree -L 1 | tail -n 1 | cut -d " " -f 3
또한 진단트리는 기본적으로 사용할 수 없습니다. 레벨 1 에서 1 위에 대한 정보를 캡쳐하도록 디렉토리에는 명령 줄 수 있는 우리의 목표는 1 '마지막' 꼬리 뻨을 실시, 최종 3 위로 을 (를) '컷' 을 시행하십시오 말을해야합니다.
예를 들어, '/' 에서 찾기:
/ $ tree -L 1
.
├── 1
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
20 directories, 1 file
/ $ tree -L 1 | tail -n 1
20 directories, 1 file
/ $ tree -L 1 | tail -n 1 | cut -d " " -f 3
1
그런 다음 수를 묻는 디렉터리용 어때?