/opt/backup/
많은 파일이 포함된 경로가 있습니다. 예:
100051
100052
100053
etc.
100051 100052 100053
파일이 존재하는지 알고 싶습니다 /opt/backup/
.
답변1
확인하려는 파일 이름에 대해 ls를 실행할 수 있습니다. 예를 들면 다음과 같습니다.
$ ls -ld /opt/backup/10005{1,2,3}
ls: cannot access '/opt/backup/100052': No such file or directory
ls: cannot access '/opt/backup/100053': No such file or directory
-rw-r--r-- 1 root root 0 Jul 4 09:25 /opt/backup/100051
/opt/backup/100051
이 예에서는 존재하는 것과 존재 /opt/backup/100052
하지 않는 것을 볼 수 있습니다 /opt/backup/100053
.
-l
선택 사항이지만 더 유용한 출력이 있다고 생각합니다.-d
디렉토리 내용의 출력을 방지하는 것입니다
스크립트에서 확인하려면 다음을 사용하십시오 -f
.
for f in /opt/backup/10005{1,2,3}; do
if [ -f "$f" ]; then
echo "Exists: $f"
else
echo "Not Exists: $f"
fi
done
산출:
Exists: /opt/backup/100051
Not Exists: /opt/backup/100052
Not Exists: /opt/backup/100053
답변2
그냥 그럴 때한 번 것나는 너무 많이 생각하고 싶지 않다는 것을 깨달았습니다.탭 완성특정 파일이나 디렉터리의 정확한 이름이나 존재 여부를 빠르게 확인합니다(어쨌든 대부분의 셸에서). 나는 보통 다음과 같이 ls
시작합니다 cat
.
ls /opt/backup/10003[TAB]
... [TAB]
Tab 키를 누르기만 하면 됩니다. 가능한 완료가 하나만 있는 경우 일치하는 파일 이름이 채워집니다. 가능성이 여러 개인 경우 해당 목록이 반환됩니다. 일부 쉘에서는 [TAB]
후보 목록으로 돌아가기 위해 여러 키를 눌러야 합니다 .
100030 100031 100032 100033
물론, 쉘은 기본적으로 탭 완성을 (또는 전혀) 허용하지 않을 수도 있습니다. 내 경험상 이런 경우는 매우 드뭅니다. 이전 버전의 Solaris를 특정하게 설치하려고 합니다.
반면에 동일한 파일을 계속해서 확인해야 하는 경우 여기에 있는 다른 답변이 더 좋습니다. 사용 사례는 실제로 지정되지 않았습니다.
답변3
일반적인 사용법입니다찾다주문하다:
find /opt/backup -type f -name "100051" -o -name "100052" -o -name "100053"
-f 유형파일만 필터링
-영형매개변수는 OR을 의미합니다.
-이름이름 템플릿을 지정할 수 있습니다.
- maxdepth
또는를 사용하여 검색할 수준 수를 정의할 수도 있습니다.-mindepth
파일이 발견되면 출력은 다음과 같습니다.
/opt/backup/100051
/opt/backup/100052
/opt/backup/100053