vasek, спасибо за ссылку. Почитал, знания укрепил.
Развеял свою неуверенность, все верно.
You can only have hardlinks within the same filesystem.
vasek, спасибо, я посмотрел. Жесткие ссылки не вариант, так как их нельзя создавать между устройствами. Если я правильно понимаю.
mount --bind тоже не подходит для моей цели.
В любом случае, сделал, как и думал в начале.
for f in ~/path/to/dir/*; do ln -s "$f" /tmp/dirtmp/; done
Запускаю программу с /tmp/dirtmp, таким образом все новые файлы создаются на tmpfs разделе, а симлинки указывают на предыдущие файлы.
Ну что ж, тогда остановлюсь на варианте с симлинками в разделе tmpfs на все старые файлы и директории.
Всем спасибо.
vasek
Наоборот, если файл сохранен и запись в него больше не происходит, то его можно смело перемещать в другое место.
Видимо не так описал.
Программа создает файл, продолжает дозаписывать его. Не закрывает.
Я пытаюсь создать ссылку с ключем --force (оригинальный фал заменяется ссылкой на файл в /tmp).
Программа дозапись не продолжает.
Я понимаю, что это не правильный вариант, но для проверки логики должен работать.
vasek
У этого файла еще нет inode, проще - этого файла в файловой системе еще нет.
Файл фактически появится только после того, как будет сохранен, но не обязательно закрыт.
Да, но ведь это еще не файл, в случае nano это просто текст в буффере. Ведь при создании файла, например командой touch файл сразу создается...
Но это все игра слов / зависимость реализации... Ну или я не прав в терминологии.

vasek
в смысле, что хоть файл и сохранен, но запись в него продолжается
Да, именно это меня и смущает.

vasek
Вообщем задача простая, экспериментируй.
b338219
Попробовал создать ссылку с ключем --force, чтобы проверить, продолжает ли программа писать в файл - не продолжает.

Я так думаю, что на этом можно остановится, если дозапись не происходит, значит такой вариант не сработает.
vasek
Нужно конкретнее описывать задачу.
Да, верно. В этом я не силен.

vasek
!!! НО, если файл открыт и в него идет запись, его в выводе не будет
Но разве при создании файла сразу не указывается дата его изменения?
В любом случае, файл появляется в выводе. Помониторил stat файла - при добавлении новой строки время модификации меняется.
Попробовал создать ссылку с ключем --force, чтобы проверить, продолжает ли программа писать в файл - не продолжает.
vasek
b338219
Хотелось бы помещать только новые файлы с подходящим именем в tmpfs
Например, периодически отслеживать появление новых файлов в заданной директории. Файлы, удовлетворяющие заданному шаблону перемещать в нужную директорию.
Да, но если в программе файл все еще открыт на запись? Я так понимаю, что будет печально, даже если симлинк создать на новое место...
Я знаю, что /tmp в tmpfs.
В "/путь/к/твоей/папке" есть огромная куча других файлов и директорий. Мне не нужно помещать все это в tmpfs. Хотелось бы помещать только новые файлы с подходящим именем в tmpfs.
Я понимаю, что можно создать tmpfs раздел и создать симлинки на все старые файлы/директории в "/путь/к/твоей/папке". Тогда все новые файлы будут создаваться в tmpfs разделе.
Просто интересно, есть ли другой способ.
Мне не tmp в tmpfs надо пихать, а конкретные (новые логи) из кастомной директории.
Памяти 16, но суть не в том.
Доброго времени суток.
Есть директория (ext4) с множеством файлов/директорий. Есть программа, которая создает логи в этой директории. Возможно ли перехватывать создание новых файлов с определенным именем и переносить их в tmpfs? При этом программа не должна терять доступ к этому файлу.
Или других вариантов, как создание tmpfs раздела и создание в этой директории симлинков на все предыдущие файлы/директории(на ext4 разделе) нету?