OSX: возможно ли создать символическую ссылку, указывающую на /dev/null, например, на каталог «черная дыра»?
Я работаю в службе поддержки, и нам нужно очистить каталог на всякий случай, если в него в какой-то момент попадут данные. У нас есть некоторые средства защиты, которые устанавливаются для снижения вероятности попадания данных в этот каталог, но из-за рабочего процесса и вещей, которые мы не можем контролировать, иногда данные оказываются в этом каталоге.
Я думаю, было бы идеально, если бы этот каталог был черной дырой. Например, символическая ссылка, указывающая на /dev/null.
Не уверен, что это возможно.
Заранее спасибо.
решение1
Это не поддерживается из коробки. Можно ссылаться на файлы в /dev/null, но не на каталоги.
например:
ln -s /dev/null ~/.bash_history
Возможно, вам стоит рассмотретьПРЕДОХРАНИТЕЛЬсделать это, но, возможно, вам повезет больше, если вы просто напишете сценарий, в зависимости от ваших потребностей
решение2
Альтернативой действиям с папками может быть сохранение plist-файла, например, такого ~/Library/LaunchAgents/test.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
<key>Label</key>
<string>test</string>
<key>ProgramArguments</key>
<array>
<string>bash</string>
<string>-c</string>
<string>rm -rf ~/Documents/Black\ Hole/*</string>
</array>
<key>WatchPaths</key>
<array>
<string>~/Documents/Black Hole/</string>
</array>
</dict>
</plist>
Его можно загрузить с помощью launchctl load ~/Library/LaunchAgents/test.plist
или выйдя из системы и войдя снова.
решение3
Вы можете создать RAM-диск, доступный только для чтения:
mydev=$(hdid -nomount ram://1024)
newfs_hfs "$mydev"
mkdir /path/to/readonlydir
mount -t hfs -r "$mydev" /path/to/readonlydir
Обратите внимание, что это немного отличается от того, о чем вы просите: запись в каталог монтирования диска, доступного только для чтения, приведет к ошибке, а не просто к молчаливому исчезновению файла.