vim --servername TAIL_VIM /tmp/somefile
Теперь, в другой оболочке (как bash), можно сделать:
while true
do
inotifywait --event modify /tmp/somefile \
&& vim --servername TAIL_VIM --remote-send '<C-\><C-N>:edit!<CR>G';
done
Where < C->< C-N> заставляет vim перейти в нормальный режим, "edit!" говорит vim перезагрузить текущий файл (CR имитирует нажатие клавиши enter), а G переходит в нижнюю часть файла. Удаление (G) облегчает встраивание файла во время входа
.Я не совсем уверен, что вы там делали, но если команда в вашем вопросе та, которую вы выполняли, вы должны просто иметь возможность отменить ее:
for f in *
do echo mv -v "$f" "${f%"#_*"}"
done
Пожалуйста, не удаляйте echo
из этой команды, пока не будете уверены, что она работает, но, просто чтобы объяснить, почему я так думаю, вот что я сделал:
for f in $(seq 100)
do echo $f > file$f
done
Это сделало меня 100 файлами типа file1
- file100
, и каждый из них содержал свой номер, так что:
$ cat file100
100
Вот так. Потом я сделал ваше дело:
for f in *
do mv -v "$f" "$f#_*"
done
И у меня была куча файлов типа file1#_*
- file100#_*
. Затем я сделал свою вещь, вставленную в первый кодовый блок здесь, но без эха, и я сделал...
$ cat file100
100