所以,我遇到了一个问题,我删除了我的ruby脚本执行的当前文件夹ex:
/home/user/scriptfolder
现在我的红宝石宝石正在运行,我这样做:
mycommand --deletefull
现在mycommand是一个GLI命令,它应该删除文件夹的内容和文件夹本身。我通过使用我的自定义类来做到这一点:
ClientModuleDir.rm_f(path)
现在删除后我想做cd ..
但是我尝试了几种方法:
system('cd ..')
Dir.chdir(dir) #dir is abs path without the scripfolder name, i've tried every combination with this command, nothing works so far.
但是这些方法不起作用。
我还在
/home/user/scriptfolder
执行这些命令后,但文件夹不存在。当我手动执行cd ..而且我确实没有文件夹。
如何在ruby代码中“物理”更改文件夹?
答案 0 :(得分:1)
当前工作目录始终仅为当前程序保留。更改程序中的工作目录不会影响任何其他正在运行的程序,包括其父程序。
因此,当您删除Ruby脚本中的目录并将Ruby进程的工作目录更改为一级时,这不会影响已启动Ruby脚本的shell进程。