Ruby代码中的更改目录

时间:2017-03-08 15:11:15

标签: ruby-on-rails ruby

所以,我遇到了一个问题,我删除了我的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代码中“物理”更改文件夹?

1 个答案:

答案 0 :(得分:1)

当前工作目录始终仅为当前程序保留。更改程序中的工作目录不会影响任何其他正在运行的程序,包括其父程序。

因此,当您删除Ruby脚本中的目录并将Ruby进程的工作目录更改为一级时,这不会影响已启动Ruby脚本的shell进程。