Я пытаюсь узнать о inotifywait. Я установил inotify-инструменты:
Start-Date: 2019-08-31 18:11:48
Commandline: apt install inotify-tools
Requested-By: dkb (1000)
Install: inotify-tools:amd64 (3.14-7), libinotifytools0:amd64 (3.14-7, automatic)
End-Date: 2019-08-31 18:11:58
Я сделал этот сценарий, jl.sh, чтобы скопировать любой измененный файл в ~/Desktop/vvtemp к ~ / Общественность и добавить метку времени к скопированному файлу:
#!/bin/bash
dir_to_watch="/home/dkb/Desktop/vvtemp/"
inotifywait -m -e modify --format '%w%f' "${dir_to_watch}" | while read line
do
s=$line
newname=/home/dkb/Public/$(date +%Y%m%d%H%M%S)"-${s##*/}"
cp $line $newname
done
Я создал файл под названием test.txt и запустил сценарий в одном терминале. Не было никаких ошибок или предупреждений.
В другом терминале я открыл test.txt с нано, отредактировал его, сохранил его и закрыл его только одно время.
Затем я отредактировал тот же файл с помощью gedit и geany
Я посмотрел на список файлов в целевой папке, ~ / Общественность:
dkb@Udin:~/Public$ ll
total 36
drwxr-xr-x 2 dkb dkb 4096 Aug 31 18:27 ./
drwxr-xr-x 17 dkb dkb 4096 Aug 31 18:08 ../
-rw-r--r-- 1 dkb dkb 1024 Aug 31 18:24 20190831182416-.test.txt.swp
-rw-r--r-- 1 dkb dkb 1024 Aug 31 18:24 20190831182419-.test.txt.swp
-rw-r--r-- 1 dkb dkb 159 Aug 31 18:24 20190831182441-test.txt
-rw-r--r-- 1 dkb dkb 179 Aug 31 18:26 20190831182619-.goutputstream-QN1A7Z
-rw-r--r-- 1 dkb dkb 198 Aug 31 18:26 20190831182638-.goutputstream-UDEB7Z
-rw-r--r-- 1 dkb dkb 210 Aug 31 18:27 20190831182722-.goutputstream-0X2K7Z
-rw-r--r-- 1 dkb dkb 221 Aug 31 18:27 20190831182733-.goutputstream-01D86Z
dkb@Udin:~/Public$
Первые три файла связаны с редактированием и сохранением test.txt с нано. Первые два файла имеют суффикс .swp. Третий файл является намеченным файлом с намеченным именем файла с меткой времени.
Затем я пытался редактировать тот же файл с gedit или geany. Эти редакторы создали файлы резервных копий, один в течение каждого раза я изменил и сохранил файл, но получающиеся резервные копии, хотя у них было намеченное содержание, имели имена файлов как 20190831182733-.goutputstream-01D86Z. Таким образом, кажется, что метку времени соблюдают, но "базовое имя" не.
Мои вопросы:
почему два .swp файла создаются inotifywait, когда я использую нано?
почему намеченное имя не сгенерировано, когда я использую gedit или geany?
Комментарий "блокировка набора" в/etc/nanorc или ~/.nanorc или $XDG_CONFIG_HOME/nano/nanorc или ~/.config/nano/nanorc
## Enable vim-style lock-files. This is just to let a vim user know you
## are editing a file [s]he is trying to edit and vice versa. There are
## no plans to implement vim-style undo state in these files.
#set locking
При отладке inotify, Вы видите, что gedit не изменяет тест:
OPEN test
CREATE .goutputstream-F4776Z
OPEN .goutputstream-F4776Z
ATTRIB .goutputstream-F4776Z
CLOSE_WRITE:CLOSE test
MODIFY .goutputstream-F4776Z
MOVED_FROM .goutputstream-F4776Z
MOVED_TO test
CLOSE_WRITE:CLOSE test
OPEN test
ACCESS test
CLOSE_NOWRITE:CLOSE test
но оба события использования "close_write" или можно следовать за inotify событиями и воссоздать шаги на местоположении резервирных копий.