Если под меткой времени вы имеете в виду "сейчас", а не время файла, то можно попробовать что-нибудь вроде:
find . -type f -name "querry_match" -size +550000000c \
-exec bash -c 'gzip --suffix $(date +".%m-%d-%Y-%H:%M:%S.z") {}' \;
, где команда даты запускается отдельно для каждого файла. Если хотите ту же дату на всех файлах, что и в начале поиска, просто делаем:
find . -type f -name "querry_match" -size +550000000c \
-exec gzip --suffix $(date +".%m-%d-%Y-%H:%M:%S.z") {} \;
Вы не передаете никаких аргументов в свою main
функцию. Если вы хотите, чтобы эта функция получала те же аргументы, что и в скрипте, передайте их вместе с:
main "$@"
Вместо:
main
Также относится к вашему сценарию:
echo >&2 Unknown option
return 1
)getopts
в функции рекомендуется изначально устанавливать OPTIND
в 1, если getopts
был вызван до (, например, при предыдущем вызове функции ). В функции параметры передаются функции, а не сценарию:
$ cat foo.sh
function main ()
{
echo "$@"
}
echo "$@"
main
$ bash foo.sh bar
bar
$
Вам нужно передать "$@"
наmain
:
main "$@"
Хотя я нахожу функцию main
в сценариях довольно бесполезной, если только вы не вызываете main
снова и снова в одном и том же сценарии.