![OR 옵션을 사용하여 파일을 분류하는 방법](https://linux55.com/image/100979/OR%20%EC%98%B5%EC%85%98%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%B6%84%EB%A5%98%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
이런 파일 이름이 있어요
/etc/auto.abc on server 1
/etc/auto.def on server 2
/etc/auto.ghi on server 1
모든 서버에 대한 스크립트를 작성 중이며 파일을 캡처하고 싶습니다.
예: cat /etc/auto.abc
또는 /etc/auto.def
또는 /etc/auto.ghi
. 존재하는 파일을 가져올 수 있어야 합니다.
감사해요,
답변1
이 같은:
if [[ $(find . -name "auto*" -type f -maxdepth 1 -printf '\n' | wc -l) -eq 1 ]]
then
cat auto*
else
echo there are more files that match 'auto*'
fi
-printf '\n'
개행 문자가 포함된 파일 이름을 올바르게 처리하는 것이 가능합니까(참조이 답변). else
2개 이상의 파일이 패턴과 일치하는 경우 이 경우를 처리해야 합니다. auto*
여기에서 수행하기로 결정합니다.
답변2
파일에 대한 작업을 실행하기 전에 스크립트를 사용하여 파일이 존재하는지 확인하는 것은 어떨까요?
#!/bin/bash
if test -f "/etc/auto.def"; then cat /etc/auto.def;
elif test -f "/etc/auto.ghi"; then cat /etc/auto.ghi;
elif test -f "/etc/auto.abc"; then cat /etc/auto.abc;fi
원천:
http://www.shellhacks.com/en/HowTo-Check-If-a-File-Exists
http://www.thegeekstuff.com/2010/06/bash-if-statement-examples/
답변3
사용을 고려해 보셨나요?파일 전역?
가장 느슨한 방법은 다음과 같습니다.
cat /etc/auto*
그러나 귀하의 경우 더 나은 것은 다음과 같습니다.
cat /etc/auto.???
틀림없이만약에이 glob과 일치하는 다른 원치 않는 파일이 있을 수 있습니다.만약에세 개의 파일 중 하나 이상이 있을 수 있으며(한 개만 필요함) 이러한 모든 가능성을 고려하지는 않습니다. 하지만 그건 확실히가장 단순한방법.