Одно базовое решение с использованием grep
. Не выполняет подробный аспект проверки даты, вместо этого просто проверяет его числовое значение.
if ls|grep -vE '^[0-9]{3}-[0-9]{8}-[0-9]{8}\.pdf$'; then
echo some bogus files found
else
echo all good
fi
Обратная косая черта является escape-символом. (Указание оболочке интерпретировать следующий символ буквально ). Как вы поняли, они не нужны. Оболочка одинаково расширит две команды.
Кто-то, вероятно, думал, что они необходимы из-за того, что фигурные скобки были зарезервированным словом, или просто хотел быть в безопасности. Однако раскрытие фигурных скобок не произойдет, если в фигурных скобках нет допустимого шаблона, а группировка команд не будет предпринята, если нет списка команд с пробелами между фигурными скобками.
Сами фигурные скобки в контексте команды find
/ exec
будут заменяться каждым возвращаемым именем файла.