我刚刚在我的机器上找到了目标//
,现在我想知道它意味着什么。
user@dev:~$ cd /
user@dev:/$ pwd
/
user@dev:/$ cd //
user@dev://$ pwd
//
它显然是根目录,但是何时以及为什么我使用双斜杠而不是单斜杠?
它与编程时使用的转义路径字符串有关吗? 例如:
string path = "//home//user//foo.file"
我也尝试过zsh,但它改为通常的根目录/
。所以我认为它的bash具体。
答案 0 :(得分:5)
这是Pathname Resolution规范的一部分:
由单个<斜杠>组成的路径名应解析到进程的根目录。无法成功解析空路径名。如果路径名以两个连续的<斜杠>开头。字符,前导<斜杠>后面的第一个组件字符可以以实现定义的方式解释,尽管多于两个前导<斜杠>字符应被视为单个<斜杠>字符。
因此,您的shell只是遵循规范并单独留下// Handle upload(s) with input name "files[]" (array) or "files" (single file upload)
if (Input::hasFile('files')) {
$all_uploads = Input::file('files');
// Make sure it really is an array
if (!is_array($all_uploads)) {
$all_uploads = array($all_uploads);
}
$error_messages = array();
// Loop through all uploaded files
foreach ($all_uploads as $upload) {
// Ignore array member if it's not an UploadedFile object, just to be extra safe
if (!is_a($upload, 'Symfony\Component\HttpFoundation\File\UploadedFile')) {
continue;
}
$validator = Validator::make(
array('file' => $upload),
array('file' => 'required|mimes:jpeg,png|image|max:1000')
);
if ($validator->passes()) {
// Do something
} else {
// Collect error messages
$error_messages[] = 'File "' . $upload->getClientOriginalName() . '":' . $validator->messages()->first('file');
}
}
// Redirect, return JSON, whatever...
return $error_messages;
} else {
// No files have been uploaded
}
,因为可能被实现定义为//
以外的其他内容。