缓存(cache),最早是硬件概念,全称缓冲存储器。台湾的翻译是“快取”。这两种翻译虽然看似截然相反,但是各有各的道理。大陆的翻译体现了缓存和存储器的联系(尤其是内存,即内存储器或称主存储器),台湾的翻译在意译的同时也贴合了原文读音。早期内存的速度很慢,为了加快CPU对内存的读取速度,将内存的部分内容存放在一个更快的存储器上,称为cache。随着技术发展,类似的设计出现在更多地方,比如为了加快硬盘(外存储器、辅助存储器)和内存之间的读写,“磁盘缓存”。软件层面,和网络、3D等相关的临时文件也被称为缓存。临时文件(temporary file,简作temp),是程序运行中产生的文件,程序运行结果的副产品。缓存和临时文件是两个难以分清的概念(也是清垃圾爱好者们痛恨的两个概念)。不算硬件上的缓存,软件层面的缓存可以看作临时文件,临时文件的概念比缓存更广泛一些。可以这么理解缓存和临时文件的区别:最好应该在内存中,但是因为内存容量有限才放到硬盘里用来代替内存读取的,叫缓存或临时文件都可以(网络缓存是硬盘代替网络读取);而和内存没有关系的,因为某些原因需要在硬盘上保存数据,比如在压缩包里查看一个文件,软件就会把这个文件先解压到某个地方,再把这个文件打开,等文件关闭后软件再把这个文件删掉;或者是一些软件为了防止断电或者崩溃进行的自动保存——由于不涉及两个设备的交换,这样的文件应该叫临时文件不叫缓存。但是在实际使用时,各种缓存、临时文件通常保存到同一位置,没有必要区分。在linux文件结构中,存放临时文件的目录是:/tmp/ (https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s18.html)这个文件夹不需要自己手动清理,每次重启或一段时间都会自动清空(systemd-tmpfiles-clean服务)。另一个存放临时文件的目录是:/var/tmp/ (https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch05s15.html)由于一些程序运行时总会需要临时文件,即便删除,下次运行这个程序时依旧会产生他们。为了节省重复制造这些文件的时间和性能损失,这些文件最好一直保持在硬盘上。因此这些文件不会自动删除,如果确定哪些文件是不需要的,可以手动清除他。用户自己的临时文件目录由$XDG_CACHE_HOME环境变量决定。通常是~/.cache/ (https://specifications.freedesktop.org/basedir-spec/latest/ar01s03.html)这个和上面的/var/tmp/很相似,一般图形应用的临时文件在这里。如果确定哪些文件不需要了,可以手动删除(尤其是很多时候卸载软件后这里都会残余一些临时文件)。
好帖顶一下
Featured Collection
Popular Events
缓存(cache),最早是硬件概念,全称缓冲存储器。台湾的翻译是“快取”。这两种翻译虽然看似截然相反,但是各有各的道理。大陆的翻译体现了缓存和存储器的联系(尤其是内存,即内存储器或称主存储器),台湾的翻译在意译的同时也贴合了原文读音。早期内存的速度很慢,为了加快CPU对内存的读取速度,将内存的部分内容存放在一个更快的存储器上,称为cache。随着技术发展,类似的设计出现在更多地方,比如为了加快硬盘(外存储器、辅助存储器)和内存之间的读写,“磁盘缓存”。软件层面,和网络、3D等相关的临时文件也被称为缓存。
临时文件(temporary file,简作temp),是程序运行中产生的文件,程序运行结果的副产品。
缓存和临时文件是两个难以分清的概念(也是清垃圾爱好者们痛恨的两个概念)。不算硬件上的缓存,软件层面的缓存可以看作临时文件,临时文件的概念比缓存更广泛一些。可以这么理解缓存和临时文件的区别:最好应该在内存中,但是因为内存容量有限才放到硬盘里用来代替内存读取的,叫缓存或临时文件都可以(网络缓存是硬盘代替网络读取);而和内存没有关系的,因为某些原因需要在硬盘上保存数据,比如在压缩包里查看一个文件,软件就会把这个文件先解压到某个地方,再把这个文件打开,等文件关闭后软件再把这个文件删掉;或者是一些软件为了防止断电或者崩溃进行的自动保存——由于不涉及两个设备的交换,这样的文件应该叫临时文件不叫缓存。但是在实际使用时,各种缓存、临时文件通常保存到同一位置,没有必要区分。
在linux文件结构中,存放临时文件的目录是:/tmp/ (https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s18.html)
这个文件夹不需要自己手动清理,每次重启或一段时间都会自动清空(systemd-tmpfiles-clean服务)。
另一个存放临时文件的目录是:/var/tmp/ (https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch05s15.html)
由于一些程序运行时总会需要临时文件,即便删除,下次运行这个程序时依旧会产生他们。为了节省重复制造这些文件的时间和性能损失,这些文件最好一直保持在硬盘上。因此这些文件不会自动删除,如果确定哪些文件是不需要的,可以手动清除他。
用户自己的临时文件目录由$XDG_CACHE_HOME环境变量决定。通常是~/.cache/ (https://specifications.freedesktop.org/basedir-spec/latest/ar01s03.html)
这个和上面的/var/tmp/很相似,一般图形应用的临时文件在这里。如果确定哪些文件不需要了,可以手动删除(尤其是很多时候卸载软件后这里都会残余一些临时文件)。