我经常使用tmutil来控制Timemachine而不是GUI,它有一些不足之处,可以让它对群众有吸引力。我倾向于在我的iMac上安装了很多驱动器,此时我有11个已安装的分区总数为20个,但驱动器和分区随着我/它们的工作而变化。有时一次很多。
我编写了一个单行程序,目的是报告/ Volumes /目录中所有驱动器的排除状态以及简单重用的别名。 alias tmutilvol="find /Volumes/ -maxdepth 1 -exec tmutil isexcluded {} \;"
它很有效。典型的输出看起来是,
[Included] /Volumes
[Excluded] /Volumes/Backup-Lion
[Excluded] /Volumes/Backups
[Excluded] /Volumes/chris
[Excluded] /Volumes/El Capitan Temp Holding
[Excluded] /Volumes/Font
[Excluded] /Volumes/Hades
[Excluded] /Volumes/iMac Bad
[Excluded] /Volumes/iMac Clone
[Excluded] /Volumes/iMac Clone New
[Excluded] /Volumes/iMac ElCap
[Excluded] /Volumes/iMac HD
[Excluded] /Volumes/iMac HD New
[Excluded] /Volumes/iMac HS Clone
[Excluded] /Volumes/Macintosh HD Clone 1
[Excluded] /Volumes/maclaptop
[Excluded] /Volumes/Old Laptop
[Excluded] /Volumes/Old-Timemachine-Garnet
[Excluded] /Volumes/Old-Timemachine-Lion
[Excluded] /Volumes/TEMPORARY
[Excluded] /Volumes/Time Machine Mirror
问题是/Volumes/iMac HD
。这不是实际的驱动器,它是一个符号链接。
drwxr-xr-x 33 chris staff 1190 Jan 17 12:31 Backup-Lion
drwxrwxr-x 20 chris staff 748 Nov 11 22:03 Backups
drwxrwxr-x 107 chris staff 3706 Nov 13 16:26 El Capitan Temp Holding
drwxrwxr-x 82 chris staff 2856 Jan 19 16:07 Font
drwxr-xr-x 260 chris staff 8908 Jan 22 11:51 Hades
drwxr-xr-x@ 41 chris staff 1462 Nov 11 22:03 Macintosh HD Clone 1
drwxr-xr-x 24 chris staff 884 Nov 11 22:03 Old Laptop
drwxr-xr-x 6 chris staff 272 Jan 17 12:31 Old-Timemachine-Garnet
drwxrwxr-x@ 20 chris staff 748 Jan 19 14:49 Old-Timemachine-Lion
drwxr-xr-x 20 chris staff 748 Jan 22 11:54 TEMPORARY
drwxr-xr-x 12 chris staff 476 Jan 23 01:30 Time Machine Mirror
drwx------@ 6 chris staff 272 Jan 16 16:18 chris
drwxrwxrwx 36 chris staff 1292 Jan 19 00:15 iMac Bad
drwxrwxrwx 29 chris staff 1054 Nov 13 16:26 iMac Clone
drwxr-xr-x 6 chris staff 272 Jan 17 16:05 iMac Clone New
drwxr-xr-x 30 chris staff 1088 Jan 16 17:31 iMac ElCap
lrwxr-xr-x 1 root wheel 1 Jan 16 20:34 iMac HD -> /
drwxr-xr-x 6 chris staff 272 Jan 17 16:05 iMac HD New
drwxrwxr-x 26 root wheel 952 Nov 13 16:26 iMac HS Clone
drwxrwxrwx 40 chris staff 1428 Jan 19 15:40 maclaptop
tmutil isexcluded
的结果实际上是符号链接而不是“/”
Kaze:~ chris$ tmutil isexcluded /
[Included] /
我想知道是否有办法让find跟随并传入符号链接的目的地。我阅读了查找手册页和关于-L选项,并认为可以做到这一点,但事实并非如此。一些挖掘stackexchange https://unix.stackexchange.com/questions/31114/find-usage-with-l解释了为什么它不起作用。我无法找到的任何线索是关于我如何做什么以及保持一个简单的单行或如果我将不得不为此编写一个函数并以某种复杂的方式处理符号链接。
我希望那些对CLI和bash有更多了解的人比我可能知道如何做我想做的事情。
答案 0 :(得分:0)
你试过吗?
readlink "/Volumes/iMac HD"
mac的一个衬垫:
find /Volumes -maxdepth 1 -exec bash -c 'N="{}"; L=`readlink "{}"`; tmutil isexcluded "${L:-$N}"' \;
说明:
必须使用两个变量,$L
用于读取链接输出,$N
用于原始名称
${L:-$N}
基本上只输出$L
,如果它不为空,则输出$N
请注意,由于MacOS的readlink不输出绝对路径,因此必须在$ L前加上“/Volumes/
”。 Linux“readlink -f
”解决了这个问题。