В вашей строке crontab есть одна или несколько звездочек *
, что означает «в любое время». Когда эта строка подставляется из подстановки команды, результат будет примерно таким:
echo * * * * * cmd > /path/to/file
В то время как большинство дополнительных расширений не применяются к выходным данным подстановки команд, расширение имени пути равно (, как и разделение полей):
The results of command substitution shall not be processed for further tilde expansion, parameter expansion, command substitution, or arithmetic expansion. If a command substitution occurs inside double-quotes, field splitting and pathname expansion shall not be performed on the results of the substitution.
Расширение пути — это то, что превращает *.txt
в список совпадающих имен файлов, (объединяющих ), где *
соответствует всему. Конечным результатом является то, что вы получаете каждое (не -скрытое )имя файла в рабочем каталоге, указанное для каждого *
в вашей строке crontab.
Вы можете исправить это, процитировав расширение, если опубликованный вами код представляет собой более сложную команду:
sudo bash -c 'echo "$(tail -n 1 /etc/crontab)" > /path/to/file'
, но проще просто потерять echo
полностью:
sudo bash -c 'tail -n 1 /etc/crontab > /path/to/file'
Это должно делать то, что вы хотите, и это также проще (единственное другое существенное отличие состоит в том, что в этой версии будет пропущено разбиение полей, которое в противном случае произошло бы, поэтому ряды пробелов не будут свернуты ).
При добавлении репозитория в sources.list вы добавили URL-адрес для безопасного подключения к репозиторию Ubuntu с помощью https
, но репозиторий не поддерживает безопасное подключение через TLS. Они считают достаточным, что все пакеты уже подписаны, поэтому вместо этого следует использовать http
.
Это не означает, что apt не поддерживает подключение по TLS , но этот конкретный репозиторий в любом случае не поддерживает подключение по TLS. Вы можете проверить это, попробовав URL-адрес в браузере.