排除文件

跳过列表让某些文件和文件夹不进入任何一次备份。在设置中,它叫作 exclude。

#默认值

新的跳过列表包含 .DS_Store、Thumbs.db、*.tmp、*.swp、node_modules 和 .cache。想备份其中哪一项,就把它删掉。

#模式的写法

  • 不含斜杠的名称或模式会匹配任何位置上同名的文件或文件夹。node_modules 会跳过每一个 node_modules 文件夹及其中的所有内容。
  • 含有斜杠的模式是一个完整路径。它会跳过这个路径及其下的所有内容。~ 代表你的主文件夹,比如 ~/Downloads/Movies。

模式中可以使用这些通配符:

通配符 匹配
* 任意数量的字符,/ 除外
? 任意单个字符,/ 除外
[abc] 列出的字符中的一个。[a-z] 表示一个范围,[^abc] 表示列出字符以外的任意字符
\ 让下一个字符按字面匹配,所以 \* 匹配真正的 *

模式区分大小写,所以 *.MOV 不会跳过 clip.mov。

列表中的文件夹本身永远不会被跳过,被跳过的只会是它们里面的内容。

#示例

模式 跳过
*.iso 所有磁盘映像
.git 所有 Git 文件夹
Cache* 名称以 Cache 开头的所有内容
~/Library/Caches macOS 主文件夹中的缓存文件夹
~/Videos/*.mov 直接位于 ~/Videos 中的 .mov 文件,不包括子文件夹中的

#修改列表

运行 frost init 并修改 "Skip"(跳过)这一步,或者使用 frost config edit。也可以用一条命令设置整个列表,这会替换掉原有的内容:

frost config set exclude .DS_Store node_modules '*.tmp' '~/Downloads'

含有 * 或 ~ 的模式要加上引号,以免 shell 先把它们展开。

只在某一次备份中跳过某些内容:

frost backup --exclude '*.iso'

跳过某些内容,并不会把它们从已有的快照中删除。