Другой вариант:
WARNING: it is possible that due to funny characters in directory names it is possible that unintended files might be deleted.
find ./ -type f \( -name fileA -o -name fileB \) -print | xargs rm -f
Или, если возможно, поймать эти файлы с забавными персонажами:
NOTE: On some systems -print0 and -0 options are not available. But this would be the preferred and safer method)
find ./ -type f \( -name fileA -o -name fileB \) -print0 | xargs -0 rm -f
Поскольку у вас есть pgrep
, весьма вероятно, что у вас также есть pkill
.
Использование pgrep
, а затем kill
вводит теоретическое условие гонки. Использование pkill
удаляет состояние гонки (из скрипта), а также позволяет избежать использования переменной для хранения PID:
ssh -t -t "$HOST_IP" pkill -f host_server1
или, если вы хотите отправить сигнал KILL
:
ssh -t -t "$HOST_IP" pkill -KILL -f host_server1
Обратите внимание, что с -f
, pgrep
и pkill
будет соответствовать шаблону всей командной строки, а не только имени процесса.
С помощью -n
и -o
будут затронуты самый новый или самый старый (соответственно) из процессов сопоставления. Таким образом, если вы хотите УБИТЬ
новейший host_server1
и ничего больше:
ssh -t -t "$HOST_IP" pkill -KILL -n -f host_server1