Во-первых, обратите внимание, что выполнение zip
- $ (which zip)
аналогично его выполнению как просто zip
. Утилита и
находит программный файл на пути пользователя.
При наличии Zip-архива zip
добавит новых файлов, заменит существующих файлов, но не удалит файлов в архив, если эти файлы были удалены из файловой системы.
Чтобы удалить файл из Zip-архива:
$ zip -d archive.zip filename
Очевидно, вы также можете просто удалить архив с помощью rm
перед его повторным созданием.
Для вашего сценария NodeJS вы можете использовать
rm -f ../data.zip && zip -r ../data.zip .
Флаг -f
для rm
заставляет rm
не сбой, если архив не существует.
Чтение файла вызывает код ядра, поэтому ядро всегда знает. Вопрос в том, как заставить его уведомлять вас.
В Linux вы можете использовать подсистему аудита . Запустите auditctl
, чтобы добавить правило для отслеживания этого файла:
auditctl -w /path/to/specific/file
Событие отправляется в журналы аудита. Вы можете запросить отправку событий аудита по электронной почте, настроив audispd - см. Как отправлять журналы аудита с помощью audisp-remote и получать их с помощью netcat для примеров. В качестве альтернативы можно настроить электронную почту для отчетов об аудите; см. Скотт Пэк «Stump the Chump the Chump with Auditd 01» .