SSH 명령의 while 루프

SSH 명령의 while 루프

원격 시스템에 연결한 다음 정보를 가져와 while파이프를 통해 루프해야 합니다.

ssh [email protected] "find ~/listfile/ -iname \"*log*\" |while read line; do cat $line; done"

위 명령은 빈 줄을 인쇄합니다. 명령을 직접 확인해 보았는데 find제대로 작동하고 파일 목록이 표시됩니다.

ssh [email protected] "find ~/listfile/ -iname \"*log*\""

찾은 파일의 내용을 어떻게 볼 수 있나요?

답변1

find원격 서버에서 이름이 일치하는 파일을 나열하고 if 파일을 추가하려는 경우 단독으로 사용해야 합니다 -type f.

ssh USER@HOST 'find ~/listfile/ -type f -iname "*log*" '

cat파일의 내용을 찾으 려면 다음 find과 같이 사용하십시오 cat.

ssh USER@HOST 'find ~/listfile/ -type f -iname "*log*" -exec cat {} +'

귀하의 특정 문제는 $line큰 따옴표로 묶여 있기 때문에 로컬 쉘 확장으로 인해 발생합니다. 그러나 어쨌든 귀하의 접근 방식은 find결과를 반복하는 잘못된 방법입니다. 바라보다찾기 결과를 반복하는 것이 왜 나쁜 습관입니까?더 알아보기.

관련 정보