Los acentos graves se asemejan a la sustitución de comandos. Esta sintaxis de backticks es arcaica, y es común saber que el signo de dólar con dos paréntesis:$()
.
La sustitución de comandos es una sola operación con sintaxis dedicada tanto para ejecutar un comando como para almacenar su salida en una variable para su uso posterior.
thedate=$(date)
Entonces podríamos imprimir el resultado :'La fecha es %s\n' "$thedate" `.
$()
. date
. $(date)
cuya salida es la sustitución. printf
, según el comando anterior. Это нормально. Ваш процесс не знает имени файла, он знает только дескриптор файла -. Поэтому, если вы удалите файл и создадите новый с тем же именем, процесс продолжит запись в файловый дескриптор прежнего файла. требуется перезапустить процесс, чтобы новый дескриптор файла был загружен и использован из имени файла.
Таким образом, если вы не хотите изменять файловый дескриптор и очищать содержимое файла, не перезапуская процесс, вы можете попробовать что-то вроде echo "">/var/log/filename
эта команда удалит содержимое имени файла без изменения файлового дескриптора. (конечно, нужно сначала протестировать)