Содержимое /etc/mysql
создается с помощью mysql-server-5.7
postinst
(, заменяя «5.7» на любую версию, которая у вас есть ). Вы должны попробовать запустить
sudo dpkg-reconfigure mysql-server-5.7
и исправление возникающих ошибок.
Как полностью переустановить mysql? объясняет, как полностью переустановить MySQL. Однако обратите внимание, что удаление /var/lib/mysql
удалит любую базу данных, которую вы создали.
Возможно, здесь происходит следующее: по умолчанию ls
выводит файлы в стандартный вывод по столбцам, что может привести к тому, что несколько имен файлов будут находиться в одной строке. ls
также не печатает целые имена файлов (, то есть включая префикс каталога ), поэтому сначала используйте cd
, чтобы попасть в каталог, чтобы ваши последующие команды правильно нацеливались на выбранные файлы. Я также не стал бы использовать глобус в ls
для фильтрации таких файлов. Используйте grep
, который использует регулярные выражения.
Попробуйте:
cd /Username/Downloads | dir -w 1 -t /UserName/Downloads/ | grep "^Barcodes.*\.zpl$" | head -1 | lpr -P BarecodePrinter -o raw
Также проверьте правильность написания имени принтера «BarecodePrinter».
Янерекомендую использовать ls
или dir
для списка ваших файлов для анализа, find
было бы лучше, но я не знаю, как правильно настроить его для сортировки по времени как ls
без awk
магии.
С помощью find
,sort
иawk
:
find /UserName/Downloads -maxdepth 1 -printf "\n%AD %AT %p\n" | grep ".*Barcodes.*\.zpl$" | sort -r | awk '{ print $3 }' | head -1 | lpr -P BarecodePrinter -o raw
Даже это может сломаться из-за неправильно экранированных имен файлов, которыми find
по-видимому, славится. Определенно можно сделать это еще безопаснее, но мне это не по силам. Я оставлю это другим пользователям.
Использование оболочки zsh
в macOS при условии, что сама команда lpr
верна:
lpr -P BarcodePrinter -o raw < ~/Downloads/Barcodes*.zpl(.Nom[1])
Квалификатор (.Nom[1])
glob изменяет поведение предыдущего шаблона подстановки, так что он соответствует только обычным файлам (, что делает .
), и так, что он вообще не расширяется, если нет соответствует (N
, соответствует nullglob
в оболочке bash
).
om[1]
упорядочивает результаты сопоставления в порядке метки времени модификации и выбирает только первую запись из списка, т. е. последний измененный из совпадающих файлов.
Если шаблон ничему не соответствует, чего не произойдет, если вы укажете неправильный каталог или опечатаетесь в имени файла, оболочка выдаст сообщение об ошибке
zsh: no such file or directory: ~/Downloads/Barcodes*.zpl(.Nom[1])
Оболочка всегда будет записывать путь к файлу, который не может быть найден, когда она сообщает об ошибке этого типа (это отсутствует в ошибке в вашем вопросе и упростило бы диагностику проблемы ).
Из дополнительной информации, размещенной в комментариях ниже, становится ясно, что фактическое имя файлов соответствует ~/Downloads/zebraBarcodes*.zpl
или ~/Downloads/*Barcodes*.zpl
, а не ~/Downloads/Barcodes*.zpl
. Будет работать тот же подход, что и выше, с обновленным шаблоном.