kill (2)
справочная страница объясняет:
Примечания к Linux
В разных версиях ядра Linux применяет разные правила для разрешений, необходимых для непривилегированного процесса для {{1} } отправить сигнал другому процессу. В ядрах 1.0–1.2.2 сигнал может быть отправлен, если эффективный идентификатор пользователя отправителя совпадает с идентификатором получателя или реальный идентификатор пользователя отправителя совпадает с идентификатором получателя. Начиная с ядра 1.2.3 до 1.3.77, сигнал мог быть отправлен, если эффективный идентификатор пользователя отправителя совпадал с реальным или эффективным идентификатором пользователя получателя. Текущие правила , соответствующие POSIX.1-2001, были приняты в ядре 1.3.78.
Возможно, даже лучше, чемdiff
-вывод, будет такой:
#!/bin/sh -eux
find before -mindepth 1 -printf "%p D\n" | cut -d/ -f2- | sort > files-before
find after -mindepth 1 -printf "%p A\n" | cut -d/ -f2- | sort > files-after
join -a2 -a1 files-before files-after | sed 's/D A$/M'
где:
before
и after
все файлы, before
и after
(-mindepth 1
), D
к файлам, найденным в before
и A
к файлам в after
, cut
), Последняя команда:
man join
), так что каждый файл (относится к каталогу поиска, поскольку мы удалили, что )появляется ровно один раз, с D
, если файл был в before
или A
, если он был в after
или D A
, если он был в обоих ), -a1 -a2
), D
и A
, мы меняем его на M
в соответствии с запросом.