如何将文件移动到安装在 /dev/shm 的内存文件系统中

ber*_*436 5 osx filesystems

最近有人告诉我 /dev/shm。你们都帮助我加深了对 /dev/shm 是什么的理解什么 dev 文件夹允许您告诉操作系统缓存某些内容?

告诉我 /dev/shm 的人说我可以用它来解压缩一个大文件,比在常规文件系统中更快。我现在正在尝试在 OS X 机器上执行此操作。我跑

sudo cp /Volumes/USB/rcv1rcv2aminigoutte.tar.bz2 /dev/shm
Run Code Online (Sandbox Code Playgroud)

并得到

cp: /dev/shm: Operation not supported
Run Code Online (Sandbox Code Playgroud)

如何将文件从常规文件系统加载到安装在 /dev/shm 的内存文件系统中

一如既往的感谢。我从这个网站上的提问中学到了很多东西。

slm*_*slm 8

据我所知,这/dev/shm是一个仅限 Linux 的功能。我只是在我的 OSX 10.9.4 系统上加倍检查,它绝对没有/dev/shm.

现在鉴于 OSX 植根于 Unix,如果它没有类似的东西,我会感到非常惊讶,所以搜索等效的东西让我找到了这个 SO Q&A,标题为:OS X 有一个等效于 /dev/shm 吗?,这又让我找到了这个 URL,标题为:Blazing Fast Firefox using OSX RamDisk

此页面显示了在 OSX 上创建 RamDisk 的脚本:

#!/bin/bash
# Run this script to enable the Ramdisk for Firefox profiles
VolumeName="Mozilla"

# Size in MB, make sure it is not too low or too high
SizeInMB=220

NumSectors=$((2*1024*SizeInMB))

DeviceName=`hdid -nomount ram://$NumSectors`

echo $DeviceName

diskutil eraseVolume HFS+ RAMDisk $DeviceName

# move the current profiles folder
mv Profiles Profiles_ &&

# make a symlink to the ramdisk
ln -s /Volumes/RAMDisk ./Profiles &&

# then copy it to the ramdisk
/bin/cp -r Profiles_/* Profiles
Run Code Online (Sandbox Code Playgroud)

特别是这一行:

diskutil eraseVolume HFS+ RAMDisk $DeviceName
Run Code Online (Sandbox Code Playgroud)

所以现在我们了解到 OSX 术语中的这类设备称为 RAM 磁盘(它们实际上在 Linux 和其他操作系统上也称为此名称,但我只是向您展示如何自己分解这些类型的问题以供将来参考)。

此页面包含更多信息和指向 GUI 工具RAM Disk Creator的链接,您也可以使用它在 OSX 上构建自己的 RAM 磁盘。

摘抄

这是有关如何构建自己的示例命令。

$ diskutil erasevolume HFS+ 'RAM Disk' `hdiutil attach -nomount ram://8388608`
Run Code Online (Sandbox Code Playgroud)

运行时看起来像这样:

    SS#1

注意:您可以使用此方法来计算值,ram://XXXXX如下所示:

将 X 字符替换为代表 RAM 磁盘总容量的块大小的数字。通过将所需的磁盘大小(以兆字节为单位)乘以 2048 来计算此数字。在我们的示例中,我们将创建一个 4 GB 的 RAM 磁盘,它需要 8388608 (4096 * 2048) 的数字。