道路是什么" //"意思?

时间:2015-09-22 11:47:16

标签: bash unix zsh

我刚刚在我的机器上找到了目标//,现在我想知道它意味着什么。

user@dev:~$ cd /
user@dev:/$ pwd
/
user@dev:/$ cd //
user@dev://$ pwd
//

它显然是根目录,但是何时以及为什么我使用双斜杠而不是单斜杠?

它与编程时使用的转义路径字符串有关吗? 例如:

string path = "//home//user//foo.file"

我也尝试过zsh,但它改为通常的根目录/。所以我认为它的bash具体。

1 个答案:

答案 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 } ,因为可能被实现定义为//以外的其他内容。