다들 아시다시피 파일을 확인하는 방법은 이렇습니다.
[[ -f /var/scripts_home/orig_create_DB_files_1.46.38 ]] && echo file exist
그러나 파일에 이름 - "이 포함되어 있으면 파일이 존재하는지 확인하는 방법데이터베이스 파일 생성"
나는 이것을 시도하지만 작동하지 않습니다
[[ -f /var/scripts_home/*create_DB_files* ]] && echo file exist
또는
partial_file_name=create_DB_files
[[ -f /var/scripts_home/*$partial_file_name* ]] && echo file exist
답변1
for name in *create_DB_files*; do
if [ -f "$name" ]; then
printf 'at least one file exists (%s)\n' "$name"
break
fi
done
즉, 관련 이름을 일치시키고 그 중 하나가 일반 파일인지 확인합니다(찾자마자 루프를 종료합니다).
답변2
이는 파일을 찾을 수 있는 모든 유연성을 사용하여 이름의 일부를 기반으로 파일이 존재하는지 여부를 테스트합니다 find
.
find . -name '*create_DB_files*' -printf 1 -quit | grep -q 1
-type f
일반 파일에 제한 일치를 추가하는 것을 고려 하거나, -mtime
파일 날짜를 일치시키거나, -maxdepth 1
검색을 현재 디렉터리로 제한하려는 경우 등을 고려할 수 있습니다.
if
위의 내용은 다음과 같은 명령 으로 결합될 수 있습니다 .
if find . -name '*create_DB_files*' -printf 1 -quit | grep -q 1
then
echo found
else
echo Not found
fi