Как редактировать /etc/printcap?

Сzsh:

dirs_to_archive=(some/dir /some/other/dir and/more/dirs)
existing_dirs=($^dirs_to_archive(/N))
if (($#existing_dirs)); then
  tar -cf - -- $existing_dirs | xz > file.tar.xz
else
  echo >&2 Error: none of the dirs were found
fi

Эквивалент POSIX (, хотя обратите внимание, что ни tar, ни xzне являются командами POSIX. )будет чем-то вроде:

# The list of dirs in "$@" (the only array in POSIX sh language)
set -- some/dir /some/other/dir and/more/dirs

for dir do
  # remove from the array the elements that are not directories like with
  # zsh's / glob qualifier above
  [ -d "$dir" ] && [ ! -L "$dir" ] && set -- "$@" "$dir"
  shift
done
if [ "$#" -gt 0 ]; then
  tar -cf - -- "$@" | xz > file.tar.xz
else
  echo >&2 Error: none of the dirs were found
fi
1
24.08.2021, 16:09
2 ответа

Проверьте отметку времени модификации файла /etc/printcap. Если он старше текущего времени безотказной работы сервера, то, возможно, он был написан более старой версией CUPS, и текущая версия могла просто не обновить его при запуске -по какой-то причине.

Вы также можете попробовать удалить файл printcap и перезапустить CUPS. По крайней мере, в Debian 11,текущий CUPS, кажется, создает файл, если он не существует, но не обновляет его, если он существует, но устарел.

Очевидно, из-за этого /etc/printcapтеперь является символической ссылкой на /run/cups/printcapв Debian 11, а поскольку /runявляется файловой системой tmpfs, она, очевидно, не переживет перезагрузку.

systemctl stop cups
mv /etc/printcap /etc/printcap.old
systemctl start cups
diff -u /etc/printcap.old /etc/printcap
1
31.08.2021, 17:54

/etc/printcapавтоматически -генерируетсяcupsd-и предназначен для совместимости с печатью BSD, поэтому вы не редактируете файл напрямую при использовании CUPS.

# mv /etc/printcap{,.bk}
# systemctl restart cups
# ls -l /etc/printcap{,.bk}
-rw-r--r-- 1 root root 261 Aug 31 09:51 /etc/printcap
-rw-r--r-- 1 root root 261 Jul 18 08:02 /etc/printcap.bk
-2
31.08.2021, 07:53

Теги

Похожие вопросы