Я использую среду общего сервера CentOS с Bash.

ll "$HOME"/public_html/cron_daily/

Приносит:

./
../
-rwxr-xr-x 1 user group 181 Jul 11 11:32 wp_cli.sh*

Я не знаю, почему имя файла имеет звездочку в конце. Я не помню, чтобы добавить его, и когда я попытался изменить его, я получил этот вывод:

[~/public_html]# mv cron_daily/wp_cli.sh* cron_daily/wp_cli.sh
+ mv cron_daily/wp_cli.sh cron_daily/wp_cli.sh
mv: `cron_daily/wp_cli.sh' and `cron_daily/wp_cli.sh' are the same file

Эта ошибка может указывать на то, почему моя работа cron Cpanel не удалась:

enter image description here

Я сделал что-то не так при изменении файла или при запуске команды cron Cpanel? Потому что обе операции кажутся неудачными.

8
user9303970 14 Июл 2018 в 21:38
Я не знаю, может ли это произойти в Linux, но я припоминаю несколько случаев, я думаю, в UNIX и MSDOS, где действительно были созданы такие «незаконные» имена, предположительно в результате использования машинного языка. интерфейс для управления/переименования файлов по сравнению с использованием обычных интерфейсов команд и языка HL.
 – 
Hot Licks
15 Июл 2018 в 04:57
1
Единственными недопустимыми именами (по крайней мере, в Linux) являются пустая строка и имя с косой чертой (/) или нулевым байтом. Вы можете без проблем создавать файлы со звездочками, заключая звездочку в кавычки или экранируя ее следующим образом touch wp_cli.sh\*.
 – 
JoL
15 Июл 2018 в 22:06
Аналогично: superuser.com/questions/178786/…
 – 
mgutt
1 Авг 2019 в 04:24

1 ответ

Лучший ответ

На самом деле звездочка не является частью имени файла. Вы видите это, потому что файл является исполняемым, а ваш псевдоним для ll включает флаг -F:

-F

Показывать косую черту ('/') сразу после каждого пути, который является каталогом, звездочку ('*') после каждого исполняемого файла, знак "@" после каждой символической ссылки, знак равенства (`=') после каждого сокета, знак процента ('%') после каждого пробела и вертикальная черта ('|') после каждого, что является FIFO.


Как упомянул Кусалананда, вы не можете разместить все скрипты в каталоге с помощью cron. С помощью run-parts вы можете вызвать "$HOME"/public_html/cron_daily/ для выполнения всех скриптов в каталоге (не только .sh) или пройтись по ним, как указано в это сообщение.

27
jesse_b 15 Июл 2018 в 14:05
2
Кроме того, cronjob не работает, потому что вы не можете выполнить весь скрипт в таком каталоге. См. unix.stackexchange.com/questions/454749/…
 – 
Kusalananda
14 Июл 2018 в 20:28
А как бы "$HOME"/public_html/cron_daily/ запустить все скрипты в каталоге? cron запустит только одну команду и не будет использовать расширение оболочки. Самым простым решением для OP было бы создать скрипт-оболочку, который выполняет for script in "$HOME"/public_html/cron_daily/*.sh; do $script; done, а затем вызвать оболочку из cron.
 – 
nneonneo
15 Июл 2018 в 04:36
В Debian/Ubuntu уже есть части запуска, которые это, может быть, в других дистрибутивах есть что-то подобное?
 – 
Philipp Wendler
15 Июл 2018 в 12:54
@nneonneo: обновлено
 – 
jesse_b
15 Июл 2018 в 14:05