시스템 장치의 파일을 보유하는 Linux 디렉터리에서 파일 이름에 "tty"가 포함된 모든 파일 수를 출력하는 방법

시스템 장치의 파일을 보유하는 Linux 디렉터리에서 파일 이름에 "tty"가 포함된 모든 파일 수를 출력하는 방법

시스템 장치의 파일을 보유하는 Linux 디렉터리의 파일 이름에 "tty"가 포함된 모든 파일 수를 출력하는 방법을 알 수 없습니다.

답변1

ls /dev/tty* | wc -w

답변2

먼저, 이러한 파일을 나열하는 방법을 찾아야 합니다. 장치 파일이 저장되는 디렉터리는 다음과 같습니다.

/dev

따라서 이러한 파일을 나열하는 명령은 다음과 같습니다.

echo /dev/*tty*

(여기에는 와 같은 VGA 콘솔뿐만 아니라 또는 과 같은 직렬 포트도 포함 됩니다 /dev/tty5. )/dev/ttyS0/dev/ttyUSB0

텍스트 입력에서 단어 수를 세는 명령이 있습니다: wc. 따라서 다음과 같이 개수를 얻을 수 있습니다.

echo /dev/*tty* | wc

이는 파일 이름에 공백이 포함되지 않은 경우에만 작동합니다. 파일 이름을 한 줄씩 나열하고 줄 수를 세는 경우 이 명령이 더 강력할 수 있지만 여전히 파일 이름에 개행 문자가 포함된 경우에만 중단되는 것은 아닙니다.

ls /dev/*tty* | wc -l

스크립트에서 보다 안정적인 접근 방식은 파일 이름 목록을 목록으로 가져와 길이를 계산하는 것입니다. 와일드카드는 이름 목록으로 확장됩니다. 목록이 비어 있는 경우 특별한 경우가 있습니다. 와일드카드는 확장되지 않습니다.

set -- /dev/*tty*
if [ $# -eq 1 ] && ! [ -e "$1" ]; then
  set --
fi
echo "There are $# matching files"

연습: 위의 코드 조각은 모든 와일드카드 패턴에서 작동합니까(즉, 파일이 하나일 때 조각이 0개의 파일을 보고하고 그 반대의 경우도 마찬가지인 와일드카드 패턴이 있습니까)?

관련 정보