Вы можете проверить временные метки двоичных файлов и время последнего обновления. Даты в каталогах могут дать некоторое представление о том, когда каталоги были изменены.
Но для этого нужны ошибки или нападение со стороны очень неопытного человека.
Как уже было сказано, отметка времени может быть изменена, но обычно ядро также можно «пропатчить», так что вы не можете доверять никаким данным (также контрольным суммам файлов) с этого компьютера. Отсоедините жесткий диск и прочитайте с защищенной машины. Лучше: смените жесткий диск и снова установите программное обеспечение (возможно, защищенное) и данные из резервной копии.
grep -E '^${g_filPfix}-([0-9]{3})-([0-9]{8})-([0-9]{9})${g_fileExt}$'
Непосредственной проблемой здесь является то, что шаблон для grep
заключен в одинарные кавычки, поэтому оболочка не будет раскрывать переменные g_filPfix
и g_fileExt
. Замена кавычек двойными -кавычками исправит это. (и скобки в шаблоне не нужны.)
Подобный разбор вывода ls
может вызвать проблемы с именами файлов, содержащими пробелы или некоторые нечетные символы. В частности, имя файла с пробелом посередине будет восприниматься как два имени файла.
Если вам на самом деле не нужен такой строгий шаблон, вы можете просто обработать все файлы с данным префиксом и суффиксом:
for f in "$dir/$prefix"*"$suffix" ; do
somecmd "$f"
done
Если вам нужен строгий шаблон, некоторые оболочки (, такие как Bash, которые, вероятно, есть у вас в Linux ), могут выполнять сопоставление регулярных выражений без внешних инструментов. Таким образом, чтобы перебрать все файлы в каталоге и игнорировать файлы, не соответствующие шаблону:
for f in "$dir"/* ; do
[[ "$f" =~ "/$prefix"-[0-9]{3}-[0-9]{8}-[0-9]{9}"$suffix"$ ]] || continue
somecmd "$f"
done
Не анализировать ls
.
for file in "${g_inboundDir}"/XAI*.pdf; do
things_to "$file"
done
Не использовать grep ls. Вместо этого используйте поиск и регулярное выражение:
find ${g_inboundDir} -regextype sed -regex "^${g_filPfix}-([0-9]{3})-([0-9]{8})-([0-9]{9})${g_fileExt}$"
В конце вы можете использовать -exec, чтобы что-то сделать с этими файлами.
Проверьте man find , чтобы узнать больше о find:)