Как переместить каталог кэша пользователя [~ / .cache] из каталога / home в другой раздел

11

Каталог .cache полон изменчивых, несущественных файлов.

Я хотел бы переместить его в более подходящий раздел, то есть быстрее и без резервного копирования.

Я считаю, что файл ~ / .pam_environment подходит для этого, но я не уверен, является ли он лучшим, или он задокументирован правильно или работает должным образом.

keepitsimpleengineer
источник
Как вы сохраняете /some/other/place/.cache между перезагрузками? Если кто-то перемещает .cache, скажем, в / dev / shm, то при перезагрузке ящика /dev/shm/.cache отсутствует, и поэтому ~ / .cache повисает символьная ссылка.
Справочное руководство по Google Chrome здесь: joeyconway.com/blog/2011/09/11/…
Kzqai

Ответы:

18

Если вы не заботитесь о том, чтобы хранить эти вещи при перезагрузке, вы можете использовать tmpfs для хранения кеша.

Установите что-то вроде следующего в /etc/fstab:

tmpfs /home/someuser/.cache tmpfs defaults,size=512M 0 0

Теперь ваш .cache будет храниться в памяти, а не на диске, хотя, если у вас недостаточно памяти, он может быть заменен.

Более традиционный подход состоит в том, чтобы переместить каталог туда, куда вам нравится, и использовать символическую ссылку в зависимости от ситуации:

mv ~/.cache /some/other/place
ln -s /some/other/place/.cache ~/
Скотт Северанс
источник
Это работает хорошо. Я надеялся использовать pam-env, поскольку это «предпочтительный» способ, но это работает, и если он не сломан, не исправляйте его. Кстати, Chrome теперь намного быстрее!
keepitsimpleengineer
~/.pam_environmentпредназначен для установки переменных среды, которые не имеют ничего общего с поставленной задачей. Кроме того, хотя некоторые утверждают, что .pam_environmentэто предпочтительнее, я не думаю, что это обязательно так, учитывая, как мало людей (согласно Google) используют его. .bashrcэто достаточно хорошо для меня.
Скотт Северанс
1
Я думаю, что во втором варианте есть одна ошибка, вторая строка должна быть ln -s /some/other/place/.cache ~/.cache, а не просто ссылка на ~ /, как приложения будут знать, что home это папка кеша, а не старый .cache внутри home?
Алексей Мартианов
1
Если имя файла не указано, то ln будет использовать исходное. Так что, хотя ваш пример тоже сработает, в моем ответе нет ошибки.
Скотт Северанс