Почему inotifywait создает файлы с “swp” или goutputstream на их имена?

Я пытаюсь узнать о 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?

2
задан 31 August 2019 в 16:50

1 ответ

Комментарий "блокировка набора" в/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 событиями и воссоздать шаги на местоположении резервирных копий.

2
ответ дан 2 December 2019 в 03:27

Другие вопросы по тегам:

Похожие вопросы: