Вы просите find найти файлы, чье имя совпадает (в случае нечувствительного к регистру совпадения) со строкой -mtime
, а затем передаёт строку \+14
в качестве аргумента, который находит, интерпретирует как путь. Это говорит вам, что путь должен быть указан первым. Проблема в том, что _searchSt
не установлено. (Вы установили переменную с именем _searchStr
ранее, поэтому, вероятно, это опечатка.)
Обратите внимание, что этой проблемы можно было бы избежать, если бы вы использовали двойные кавычки и написали find /data/ing/ur/test -type f -iname "$_searchSt" $_input_date ...
. И это является предметом дискуссии относительно наилучшей практики: вы не можете двойные кавычки $_input_date
, так как вы полагаетесь на разделение полей здесь. Лучше всего избегать использования разделения поля и явной записи -mtime
с переменной, содержащей только аргумент, который будет использоваться. То есть; find "$path" -type f -iname "$searchStr" -mtime "$_input_date" ...
Вы также можете защититься от ошибок этого типа (неправильного использования имен переменных), используя конструкцию ${..?}
и записывая find "${path?}" -type f -iname "${searchSt?}" ...
.