이름이 4글자밖에 안되는 파일을 찾고 싶습니다.
예를 들어 다음은 세 가지 파일입니다 /tmp
.
$ ls /tmp
txt
file
linux
file
출력은 길이가 4자에 불과하므로 표시되어야 합니다 .
답변1
?
파일 일치에 와일드카드를 사용합니다 .
ls -d /tmp/????
이렇게 하면 파일 이름이 4자 길이인 모든 파일과 디렉터리가 인쇄됩니다.
@roaima가 제안한 것처럼 이 플래그는 이 패턴과 일치하는 하위 디렉터리의 내용이 표시되는 것을 -d
방지합니다 .ls
답변2
파일만 나열 /tmp
:
cd /tmp
find . ! -name . -prune -path './????' -type f
재귀적으로 파일 나열 /tmp
:
find /tmp -path '*/????' -type f
답변3
노력하다:
find /tmp -type f -print| awk -F/ ' length($NF) == 4 '
무엇 awk
인가요:
/
필드 구분자 로 사용됩니다 .- 파일 이름 찾기
$NF
(마지막 필드) - 계산하다
length
- 값이 4인지 확인한 다음 인쇄하십시오.
답변4
perl
(5.10 이상) 솔루션 도 있습니다 .
perl -E 'say for </tmp/????>;'
원하는 길이를 지정할 수 있는 약간 더 유연한 버전:
perl -E 'my $w = "?" x shift; say for </tmp/$w>;' 4