【发布时间】:2018-08-19 21:27:30
【问题描述】:
我把我的 Macbook 搞砸了。我将一些 Time Machine 备份从我的外部驱动器移动到 Trash 并很快意识到这是一个可怕的错误。我不能把它们放回去,也不能删除它们。到目前为止,我一直在运行 rm 和一个名为 bypass 的辅助函数,它允许我绕过 Apple 对删除备份的保护。
无论如何,我有一个命令
sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass rm -rfv /Volumes/*/.Trashes
为了简洁可以简称为
sudo bypass rm -rfv /Volumes/*/.Trashes
不断被rm: fts_read: No such file or directory 打断。我认为 fts_read 本质上是一个 UNIX 内核函数,它进入文件空间并在非常冗长的递归 rm 调用期间作为文件读取。所以我想抓住fts_read 并重新启动我的sudo bypass rm -rfv /Volumes/*/.Trashes。我不太了解 bash,但这是我的一些想法的伪代码:
try:
sudo bypass rm -rfv /Volumes/*/.Trashes
except 'rm: fts_read: No such file or directory':
sudo bypass rm -rfv /Volumes/*/.Trashes
基本上现在我每次收到错误时都会手动重新启动命令,但是这个过程需要几十个小时,所以如果它能够自行重新启动就好了。
【问题讨论】:
-
你最后是怎么解决的?
-
我不确定,但也许可以尝试将您的命令包装在 python 之类的东西中?这样你就可以使用 try/catch 并且仍然使命令行
exec调用 @ebaynaud