
Quer limpar /private/var/folders/*
na inicialização do OS X,criandouma launchd
entrada. (Até onde sei, o OS X não suporta o rc.conf
rc.d
- tudo deve ser feito criando uma entrada para o launchd
)
Aqui está umsemelhante pergunta. Infelizmente, a resposta aceita está errada, porque aqui estão os daemons (especialmente os deaemons que dependem da mktemp
chamada) que podem ser executados e ainda abriram arquivos - então, vocênão foi possível excluira qualquer momento qualquer coisa no /private/var/folders/*
. (Para ser correto, a sugestão de "reiniciar após" resolve um pouco o problema - mas não totalmente.)
Então, a questão é: é seguro excluir os arquivos no/private/var/folders/*
na hora da inicialização?
(Posso imaginar que algum script de instalação que precisa ser reinicializado (instalação .kext ou algo semelhante) poderia usar pastas temporárias para alguns dados de instalação pós-reinicialização - e não quero travar meu sistema após alguma instalação crítica, excluindo os arquivos necessários :) -isso é pura especulação minha- portanto perguntando).
- Ou a única maneira segura é excluir arquivos com mais de X dias?
- Ou outra ideia paraseguromasautomáticolimpeza dos arquivos/diretórios temporários no
/private/var/folders/*
porque ele continua crescendo e crescendo... ;(
Responder1
DR: /var/folders
contém pastas para caches por usuário e arquivos temporários. Você pode acessar suas próprias pastas, mas não as de outros usuários. Excluir arquivos que não estão em uso no momento deve ser seguro, mas excluir arquivos que estão em uso provavelmente causará problemas. Se quiser eliminá-los, reinicie depois, para minimizar a probabilidade de problemas.
Se você não fizer nada, os processos do sistema limparão periodicamente essas pastas de arquivos que não foram acessados por três dias, então você não precisa fazer nada, a menos que esteja com pouco armazenamento.
Os detalhes
/var/folders
contém principalmente arquivos temporários e arquivos de cache, armazenados por usuário. Se você olhar a raiz de /var/folders
, não verá muita coisa:
$ ls -l /var/folders
total 0
drwxr-xr-x 3 root wheel 102 Mar 2 2014 43/
drwxr-xr-x 3 root wheel 102 Mar 2 2014 4c/
drwxr-xr-x 3 root wheel 102 Mar 2 2014 c3/
...
Mas se você olhar um nível abaixo, verá que eles contêm pastas por usuário. Normalmente, cada pasta de nível superior (dois caracteres) contém uma pasta de usuário, mas a pasta “zz” contém muitos usuários do sistema. Por exemplo (nomes de usuário alterados para fins de privacidade):
$ ls -l /var/folders/*
/var/folders/43:
total 0
drwxr-xr-x 6 user1 staff 204 Oct 3 2016 3lsw0k6d7vqbywvsf226nkqc0000gs/
/var/folders/4c:
total 0
drwxr-xr-x 6 user2 staff 204 Jul 15 2016 yc9pgt3j5y18vr29jcgbbyb4000101/
/var/folders/c3:
total 0
drwxr-xr-x 6 user3 staff 204 Aug 16 2016 wv6q5xlx1flgtwcs0rjlkbd4000102/
/var/folders/rp:
total 0
drwxr-xr-x 4 admin staff 136 Jul 3 2016 qjg8tsk964scvw2510_n6yz00000gt/
/var/folders/yx:
total 0
drwxr-xr-x 4 macports macports 136 Jul 3 2016 m3d21nm91wnd4c0k2yjk57200000gn/
/var/folders/zz:
total 0
drwxr-xr-x 6 root wheel 204 Jul 3 2016 zyxvpxvq6csfxvn_n0000000000000/
drwxr-xr-x 3 _networkd _networkd 102 Jul 3 2016 zyxvpxvq6csfxvn_n000003000000r/
drwxr-xr-x 3 _lp _lp 102 Jul 3 2016 zyxvpxvq6csfxvn_n000003800000t/
...
Dentro de cada uma delas, você encontrará algumas pastas mágicas:
$ ls -l /var/folders/4c/yc9pgt3j5y18vr29jcgbbyb4000101/
total 0
drwxr-xr-x 6 user2 staff 204 Sep 1 10:31 0/
drwx------ 53 user2 staff 1802 Jul 28 18:44 C/
drwxr-xr-x 2 user2 staff 68 Jul 3 2016 Cleanup At Startup/
drwx------ 83 user2 staff 2822 Sep 1 10:53 T/
A C
pasta " " são os caches do usuário - contendo o que (antes do MacOS X 10.5) teria entrado no arquivo /Library/Caches
. A T
pasta " " contém os arquivos temporários desse usuário - substituindo /tmp
ou talvez /var/tmp
.
Não tenho certeza sobre as outras duas pastas. Cleanup At Startup
está vazia. Suspeito que seu objetivo seja armazenar arquivos necessários até o momento da reinicialização, mas que devem ser eliminados posteriormente (por exemplo, arquivos temporários usados pelos atualizadores do sistema) e, portanto, serão apagados após uma reinicialização (ou talvez até mesmo um logout/login ).
A 0
pasta " " contém alguns bancos de dados relacionados à área de trabalho e provavelmente serve como cache para estes serviços:
$ ls -l /var/folders/4c/yc9pgt3j5y18vr29jcgbbyb4000101/0
total 14104
-rw------- 1 user2 staff 7221248 Sep 1 10:31 com.apple.LaunchServices-1341025.csstore
drwx------ 3 user2 staff 102 Jul 3 2016 com.apple.dock.launchpad/
drwx------ 3 user2 staff 102 Jul 3 2016 com.apple.notificationcenter/
drwx------ 3 user2 staff 102 Sep 1 10:05 com.apple.pluginkit/
Então, para resumir, cada usuário e usuário virtual tem seu próprio diretório em /var/folders
. Você terá acesso aos seus, mas não a outros usuários (a menos que você use sudo
para acessá-los como root). Eles contêm principalmente caches e arquivos temporários. Como tal, excluir o conteúdo pode ou não ser seguro, dependendo se os arquivos estão em uso ou não.
Excluir arquivos onde o processo correspondente ainda está em execução pode fazer com que o processo se comporte mal ou trave. A exclusão de arquivos onde o processo correspondente não está em execução deve ser segura, mas pode levar a problemas de desempenho quando o processo for reiniciado (uma vez que provavelmente gerará novamente seus caches e arquivos temporários).
Parece que um processo em segundo plano é executado todas as noites às 3h35 para limpar essas pastas. Não sei a natureza específica da limpeza (ela não parece estar bem documentada), mas o que li parece indicar que ela excluirá qualquer arquivo que não tenha sido acessado por três dias.
Responder2
Normalmente /var/folders
deve ser devidamente purgado e regulado pelo sistema quando necessário. Remover algumas coisas de lá sem saber o que foi removido provavelmente pode causar alguns resultados inesperados e altamente indesejáveis.
Se você está falando sobre limpar esta pasta manualmente na reinicialização, acho que deve ser seguro, pois provavelmente não será usado por alguns programas em execução (apenas algumas sobras da última vez). Seja como for, é sempre mais seguro remover arquivos com 1 dia de idade, apenas para garantir.
Acho bom descobrir como o OS X limpa essa pasta e como invocá-la manualmente, então seria uma solução melhor.
Veja também:
- O que é "/var/pastas"?
- Posso excluir /private/var/folders/bf/?
- Posso excluir o conteúdo de /private/var/folders/*?nas Comunidades de suporte da Apple
Responder3
Pelo que vale a pena (ou seja, decida por si mesmo :-), fazer isso é perigoso em Catalina (10.15). Fiz isso em um Macbook Air após a atualização para Catalina. Ele não reiniciava e era difícil recuperar do Time Machine com uma tela interna ruim.
Eu também tive outra tela ruim do Macbook Air (e teclado ruim e trackpad ruim, mas discordo). Fiquei paranóico porque uso isso para desenvolvimento. Então, em vez disso, encontrei outro truque online. Manter pressionada a tecla Shift durante a inicialização faz com que o Mac entre no "modo de segurança". O Mac inicializou no modo de segurança e "sudo du -d 1 -h /private" confirmou 44 GB. Após outra reinicialização no Mac OS X normal e o mesmo comando mostrou 3 GB.
Aliás, isso não funcionou com um teclado normal, tive que encontrar um teclado Apple.
Muito mais seguro, embora seja doloroso, fazer isso regularmente. Tentei os limpadores gratuitos, mas nenhum encontrou esses arquivos/pastas. E prefiro não gastar entre US$ 30 e US$ 80 em uma faxineira que provavelmente também não os encontrará...