2015-05-07 45 views
-1

我有一些旧的CGI脚本似乎不能正常工作。Perl - 删除空格的目录

有一个目录

$dir = "schedule/2015/Some Directory/Some Deeper Directory"; 

我用File::Path,我使用system("rm", "-rf", $dir); 或者remove_tree($dir)也试过,但我得到了错误的目录不存在,当我做system("ls -l")列出的目录。

另外我试着cd介绍一些目录和删除一些更深的目录,但没有运气。

其实当我在我的Mac上本地运行它时,它工作正常,但在Debian挤压服务器上失败。

perl版本是5.010001。

我没有更多关于服务器的信息,只有FTP访问。

你的想法是什么?

感谢

+0

'remove_tree'适合我:'dir =“schedule/2015/Some Directory/Some Deeper Directory”; mkdir -p“$ dir”&& perl -MFile :: Path = remove_tree -we“remove_tree q {$ dir}”' – ThisSuitIsBlackNot

回答

-1

尝试以下,你的例子上面稍作修改:

system("rm", "-rf", "'$dir'"); 

...只要你在正确的目录里(即在schedule父目录) ,虽然rm -rf总是很危险......

+0

这似乎并不奏效。 不能删除./schedules/2015/Some目录/一些深层次目录:在index.cgi脚本行错误的文件描述符211 – Douglish

+1

你可以发布你使用的是创建一个样本目录失败的命令,然后一个示例脚本删除它。到目前为止,所有重新创建问题的尝试都失败了,所以我怀疑目录名中是否有错误,或者在运行脚本时出现错误的目录。 – TobyLL

+2

好的,整个问题是因为有人创建了目录“某个目录”,最后有空格,我没有看到它。我注意到,当我试图重命名它。捂脸。 – Douglish