Термин «регулярное выражение» (обычно) не применяется к выбору файлов из командной строки. 1 Технический термин - расширение имени пути, более известное как подстановка подстановки, сопоставление с образцом или подстановочный знак. Исходя из того, что вы сказали, первая попытка ответа будет
rm -- *[0-9]x[0-9]*
, которая удалит каждый файл в текущем каталоге, имя которого состоит из
*
), а затем на [0-9]
), за которой следует x
, за которой следует [0- 9]
), за которым следует *
). -
защищает вас от файлов, имена которых начинаются с -
.
Я настоятельно рекомендую вам сначала сделать
ls -ld -- *[0-9]x[0-9]*
, чтобы увидеть, какие файлы совпадают и будут удалены.
Если вы обнаружите, что сопоставляете файлы, которые не хотели,
используйте * [0-9] [0-9] [0-9] x [0 -9] [0-9] [0-9] *
, чтобы получить только файлы, содержащие
(как минимум) трехзначное число, x
и еще три- цифровой номер.
И / или добавить .jpg
(в конце, т. Е. Использовать * [0-9] x [0-9] *. Jpg
) {{1 }}, чтобы ограничить команду файлами с этим расширением,
, а затем повторите команду с .png
.
Или используйте
rm -i -- *[0-9]x[0-9]*
, чтобы rm
запрашивали подтверждение для каждого файла.
Вы упомянули «каталог, в котором есть каталоги.У всех есть JPG ". Если вам нужно выполнить поиск в дереве каталогов, можно ввести
shopt -u globstar
, а затем добавить ** /
к подстановочному знаку; т.е. добавить его в начало; например,
rm -i -- **/*[0-9]x[0-9]*
Еще одним способом сканирования дерева подкаталогов является
find . -name "*[0-9]x[0-9]*" -type f -exec rm -i -- {} +
, и вы можете «предварительно просмотреть» эту команду (посмотреть, с какими файлами она будет соответствовать), набрав
find . -name "*[0-9]x[0-9]*" -type f -print
Опять же, если это соответствует слишком большому количеству файлов, {{1 }} вы можете добавлять цифры и / или добавлять расширения.
Примечания:
find
.
Вы не должны заключать подстановочный знак в кавычки в других командах. find
автоматически найдет файлы, имена которых начинаются с
на .
.
Остальные не будут, если сначала вы не введете shopt -s dotglob
. find
будет работать только с простыми файлами из-за -типа f
.
Остальные будут работать с каталогами (и другими специальными файлами)
, если их имя содержит число x число
.
Это не должно быть проблемой для каталогов,
поскольку rm
не удаляет каталоги.
Но, как я уже сказал, сначала выполните ls
и внимательно проверьте вывод,
или используйте rm -i
и подумайте, прежде чем вводить ] y
. _________
1 find
действительно может сопоставлять регулярные выражения,
с тестом -regex
, но для этого он вам не нужен проблема.
Исходный код демона avahi -включает еще несколько сообщений о состоянии, например.
sd_notifyf(0, "STATUS=Server startup complete. Host name is %s. Local service cookie is %u.", avahi_server_get_host_name_fqdn(s), avahi_server_get_local_service_cookie(s));
Однако по умолчанию демон avahi -входит в безопасный chroot во время запуска. Это означает, что он не может получить доступ к сокету уведомлений systemd /run/systemd/notify
. Он заблокировал себя от отправки сообщений о состоянии в systemd. Упс.
# ls -l /proc/817/root
lrwxrwxrwx. 1 root root 0 May 8 16:27 /proc/817/root -> /etc/avahi
# ls -l /proc/817/root/
-rw-r--r--. 1 root root 1753 Jul 10 2017 avahi-daemon.conf
drwxr-xr-x. 2 root root 4096 Apr 6 16:48 etc
-rw-r--r--. 1 root root 1121 Jul 10 2017 hosts
drwxr-xr-x. 2 root root 4096 Apr 6 16:48 services