Перемещение файла в файл, который читается

Существует много опций, данных в руководстве. (См. раздел OPTIONS.) Создают файл RC: ~/.tmux.conf. Содержание ниже включает UTF-8, устанавливает тип правильного слова и тянет строку состояния с черным фоном и белым передним планом.

set status-utf8 on
set utf8 on

set -g default-terminal "screen-256color"

set -g status-bg black
set -g status-fg white

В FreeBSD 10.1 должен был добавить я -g к директивам UTF.

set -g status-utf8 on
set -g utf8 on

На UTF-8 многие клиенты SSH требуют, чтобы тот явно определил набор символов для использования. Например, в Шпаклевке, выбрать Window -> Translation -> Remote character set: UTF-8 и выберите Use Unicode line drawing code points.

И выключить строку состояния...

set -g status off

На цветах из руководства...

фоновый цвет сообщения

Строка состояния набора передает цвет фона, где цвет является одним из: черный, красный, зеленый, желтый, синий, пурпурный, голубой, белый, colour0 к colour255 от 256 цветовых палитр или значению по умолчанию.

Так, для списка доступных цветов сначала создайте сценарий, возможно colors.sh:

#!/usr/bin/env bash
for i in {0..255} ; do
    printf "\x1b[38;5;${i}mcolour${i}\n"
done

Затем, выполните сценарий, передав по каналу к less:

colors.sh | less -r

Это производит список цветов, 1-255, в этом формате:

colour1
[...]
colour255

Выберите цвет из списка, возможно, colour240, оттенок серого. В ~/.tmux.conf, используйте это значение для установки требуемого цвета:

set -g status-bg colour240

В Fedora 17 терминалы с 256 цветами не включены по умолчанию. Официальный метод, используемый для включения терминалов с 256 цветами по умолчанию, дан на Проекте Fedora Wiki. Следуйте тому руководству, или, как решение в расчете на пользователя, создайте псевдоним для tmux для принуждения поддержки с 256 цветами с эти "-2" переключатель.

alias tmux="tmux -2"

Затем запустите tmux для тестирования его.

Обратите внимание, что, поскольку @ILMostro_7 указывает, это не было бы корректно для установки СРОКОВ тип для tmux от, например, ~/.bashrc. Каждая область tmux эмулирует терминал - не то же самое как xterm. Эмуляция в tmux потребности соответствовать экрану, другому терминальному описанию, для поведения правильно; но, реальный терминал не должен делать так. Это - описание, xterm-256color.

10
02.12.2013, 00:34
1 ответ

Операция чтения успешно выполнится, независимо со времени, которое требуется для завершения операции чтения.

Почему и как это работает?

Когда операция чтения запускается, Inode файла используется в качестве дескриптора, из которого читается содержание файла.

При перемещении другого файла в конечный файл результатом будет новый inode, что означает, что физическое содержание файла на диске будет помещено где-то в другом месте и исходное содержание файла, который читается, не будет затронут.

Единственная вещь, которую они имеют общего, их путь/имя файла, в то время как базовый inode и физическое местоположение на диске изменяются.

После того как операция чтения заканчивается (учитывая никакой другой процесс, все еще имеет открытый дескриптор файла на старом файле и нет никаких других hardlinks ссылки на его inode), старые данные будут отброшены.

После того как движущаяся операция завершается, файл будет иметь новый inode индекс.

Можно отобразить файлы inode использование индекса ls -i /tmp/some-file.

По той же причине, как описано выше, возможно удалить файлы, которые все еще используются приложением, поскольку приложения с помощью файла будут просто читать из inode (указывающий на фактическое содержание файла на диске), в то время как ссылка файлов в файловой системе удалена.

9
27.01.2020, 20:02
  • 1
    Вы забыли упоминать жесткие ссылки: Когда операция чтения заканчивается, если это, inode связан из другой записи каталога, то данные не будут удалены (потому что это все еще имеет имя). –  cjm 01.12.2013, 19:51
  • 2
    Спасибо за указание, которое, отредактировало мой ответ и добавило его. –  Elias Probst 01.12.2013, 21:13

Теги

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