2012-09-12 3 views

답변

1
set -- /dir/*.ini 
case $1 in 
    ('/dir/*.ini') echo "No ini files here.";; 
    (*)   echo "Found $# ini files: [email protected]";; 
esac 

봐 엄마 후 -maxdepth 1를 추가! 포크 없음! 이것은 CPU 사이클의 백만 번에 의해 포크가있는 모든 솔루션을 ls, find 및 친구들과 비교합니다.

여기에 하나의 작은 문제가 있습니다. 그것을 발견 할 수 있습니까? 좋아요, /dir에 문자가 *.ini (별, 점, ini) 인 파일이 포함 된 경우 어떻게됩니까? 위의 경우 false negative이 표시됩니다. ini 파일이 있지만보고합니다. 당신이이 경우에 대비하려면 약간 읽을 수있는 첫 번째 경우를 수정하지 (당신은 당신이 세부 사항에주의를주는주의 프로그래머이기 때문에, 당신의 코드에서 어떤 개는이 오른쪽?,해야)

('/dir/*.ini') 
    if test -f '/dir/*.ini'; then 
    echo "Wow, there's a plain file named '/dir/*.ini'!" 
    else 
    echo "No ini files here." 
    fi;; 
0

find /dir/ -iname '*.ini'. 당신이 하위 디렉토리를 검색하지하려면, /dir/

2

나는이 하나가 기존 jpeg 파일을 확인하는 데 유용하다는 것을 알았습니다.

if ls /path/*.jpg &> /dev/null; then 
    #do something with existing files 
else 
    echo "files do not exist" 
fi 
관련 문제