Этот вопрос касается Ubuntu 14.10 на моем ноутбуке разработчика.
У меня есть папка, /tmp
которая используется приложением для размещения там временного содержимого. Это приложение обычно создает временную папку в моем домашнем каталоге и впоследствии удаляет ее. По некоторым причинам это не работает, когда homedir зашифрован. Вместо этого я сделал символическую ссылку на /tmp/foo
мой домашний каталог. Мое приложение может написать туда и сделать его временной подпапкой.
Теперь /tmp/foo
удаляется каждый раз, когда я перезагружаю свою машину. До сих пор я просто заново создавал папку после перезагрузки. Теперь я узнал, как очищается каталог / tmp? что есть работа, делающая это.
Я посмотрел, /etc/init/mounted-tmp.conf
но моего bashfu и особенно моего findfu недостаточно, чтобы делать то, что я хочу. Вот выдержка из этого файла:
EXCEPT='! -name . ! ( -path ./lost+found -uid 0 ) ! ( -path ./quota.user -uid 0 ) ! ( -path ./aquota.user -uid 0 ) ! ( -path ./quota.group -uid 0 ) ! ( -path ./aquota.group -uid 0 ) ! ( -path ./.journal -uid 0 ) ! ( -path ./.clean -uid 0 ) ! ( -path "./...security*" -uid 0 )' # Remove all old files, then all empty directories find . -depth -xdev $TEXPR $EXCEPT ! -type d -delete find . -depth -xdev $DEXPR $EXCEPT -type d -empty -delete
Что я хочу сделать, это добавить условие, которое заставляет его удалить все внутри /tmp/foo
, но не /tmp/foo
сам. Как мне это сделать?
/tmp/foo
каталог или файл?mkdir /tmp/foo
прямо раньшеend script
?Ответы:
/etc/init/mounted-tmp.conf
является частьюmountall
пакета, поэтому любые обновления этого пакета и предлагаемые изменения будут отменены.Вместо этого, в соответствии со стандартом файловой системы Hierachy (FHS) ;
Относительно / TMP :
Относительно / var / tmp :
Поэтому вы должны изменить символическую ссылку, чтобы использовать
/var/tmp
вместо/tmp
.источник
/var/tmp
это не очень хорошая идея?If a person is familiar with ... a certain, single instrument, they may have a confirmation bias to believe that it is the answer to/involved in everything.
Я говорю, что ОП использует / tmp для чего-то, для чего он не предназначен - Использование / tmp в качестве молотка для его проблемы сохранения tmp-но-не-совсем Вещи / var / tmp НЕОБХОДИМО хранить между перезагрузками, поэтому это правильный ответ.Не совсем ответ на ваш вопрос, но вы можете найти
/var/tmp
более подходящее место, так как оно не очищается после перезагрузки. Он предназначен для временных файлов, которые не должны автоматически удаляться через короткое время.Однако я часто создаю себе папку в / opt для хранения случайных вещей, которые мне не нужны дома. Это подходящее место для размещения вещей, которые находятся вне контроля основной ОС.
источник
Вот так:
Пример:
Я согласен с пользователем aap: Вы должны либо позаботиться об этом в программном обеспечении, которое используется для повторного создания каталога там, если они являются файлами tmp, либо использовать другой каталог, если они не являются файлами tmp, которые не очищаются.
источник
find
команда работает должным образом при запуске вручную, каталог все равно удаляется после редактирования/etc/init/mounted-tmp.conf
. Кажется, здесь что-то еще происходит.-path ./foo
и даже,-name '*foo*'
и ни одна из них не работала (на Ubuntu Server 14.04). Я думаю, что это просто не тот файл, и мы ищем не в том месте. То, что вы предлагаете, должно сработать, просто не похоже.Это плохая идея иметь файлы с будущим значением, записывать в каталог / tmp (лучше использовать / var / tmp, как предлагают другие). Тем не менее, вы можете попробовать выстрелить в чаттр. Это должно быть выполнено после выхода из приложения, но до завершения работы. Помните, что эта операция не позволит ничего писать в этот каталог впредь.
Нажмите /tmp/foo/ddmmyy/.001_immute_me chattr + i /tmp/foo/ddmmyy/.001_immute_me
источник
Запустите это:
затем добавьте это в
/ etc / inittab,смотрите здесь: где находится файл inittab? :Это создаст / etc / foo при загрузке, если он не существует, а затем очистит его.
Это будет делать то же самое при входе в bash:
источник
/etc/inittab
. Это четко и недвусмысленно указано на его странице руководства.