【发布时间】:2011-11-27 06:47:53
【问题描述】:
我想在/tmp/vnc/中创建一个以用户名命名的文件夹,我可以在命令行中使用perl -e 'mkdir("$ENV{USER}")'创建该文件夹,但是下面的代码不能工作。
chdir ("/tmp/vnc") or die -1;
mkdir ("$ENV{USER}", 0777) or die -1;
如果我在命令行中使用mkdir -p /tmp/vnc/$ENV{USER} 创建文件夹,什么都不会发生,也不会报告错误。
【问题讨论】:
-
... or die "Error in mkdir: $!\n"可能会告诉你更多。$!为您提供先前失败操作的错误代码。 -
非常感谢。它说“mkdir中的错误:文件存在”,但用户名命名的目录不存在。
-
@thinkman 也许有一个同名的文件(或fifo,或套接字)。不能有同名的目录和文件。
-
... 或运行此脚本的用户帐户无权在 /tmp/vnc ... 中创建文件或目录!请检查 ls -ld /tmp/vnc 以查看该目录的权限
-
@Tilo:如果该用户没有权限,错误可能会读取“权限被拒绝”而不是“文件存在”。
标签: linux perl directory mkdir