因为某些需求,需要创建一个内存盘。Mac是基于Unix内核的,可以不借助其他软件,使用命令行即可创建内存盘。
在用户文件夹中创建一个“ramdisk”文件夹。这个文件夹可以自己随意定。在该文件夹中创建文件login.sh,文件内代码如下。注意修改备份路径中的“你的用户名”
#!/bin/sh
#磁盘名称
DISK_NAME=RamDisk
#磁盘路径
MOUNT_PATH=/Volumes/$DISK_NAME
#备份路径
BAK_PATH=/Users/你的用户名/ramdisk/$DISK_NAME.tar.gz
#磁盘大小,单位GB
DISK_SPACE=4
if [ ! -e $MOUNT_PATH ] ; then
echo "创建磁盘"
diskutil erasevolume HFS+ $DISK_NAME `hdiutil attach -nomount ram://$(($DISK_SPACE*1024*1024*2))`
fi
if [ -s $BAK_PATH ]; then
echo "从备份进行恢复"
tar -zxf $BAK_PATH -C $MOUNT_PATH
fi
同样的方法再创建一个logout.sh,文件内代码如下。注意修改备份路径中的“你的用户名”
#!/bin/sh
#磁盘名称
DISK_NAME=RamDisk
#磁盘路径
MOUNT_PATH=/Volumes/$DISK_NAME
#备份路径
BAK_PATH=/Users/oleg/ramdisk/$DISK_NAME.tar.gz
if [ -e $MOUNT_PATH ]; then
echo "开始备份磁盘内容"
cd $MOUNT_PATH
tar --exclude ".Trashes" -czf $BAK_PATH .
fi
打开terminal.app,输入如下代码(需要输入密码)
chmod +x /Users/你的名字/ramdisik/logout.sh
chmod +x /Users/你的名字/ramdisik/login.sh
sudo defaults write com.apple.loginwindow LoginHook /Users/你的名字/ramdisik/logout.sh
sudo defaults write com.apple.loginwindow LogoutHook /Users/你的名字/ramdisik/logout.sh
变量
代码中用到的变量有磁盘名称,磁盘路径,备份路径。磁盘备份文件和脚本文件放在用户目录中的ramdisk文件夹。如果修改位置的话注意同时修改BAK_PATH变量和terminal.app输入的代码中,最后的那段路径
代码逻辑:
开启执行login.sh,创建内存盘,并读取上一次的备份;关机执行logout.sh,将现在内存盘的文件(不包括回收站)备份
注:
本文面对非专业人员。如果你懂这些的话,复制代码了自己玩就好