我需要像链接一样重命名文件,但如果我尝试用它重命名它mv file.gif http://link/123/file.gif
是行不通的。
我尝试用反斜杠 \ 转义斜杠 / ,但没有成功。
出现的错误告诉我,他没有找到目录,因为他将斜杠视为目录树的一层。
答案1
/
是 Unix 文件路径中分隔组件的字符。该字符不能出现在目录条目的名称中。http://link/123/file.gif
是目录file.gif
内的文件123
本身在link
目录内本身在目录内http:
,本身在当前工作目录中。
要将其重命名为该路径中的该文件,您需要首先创建目录:
mkdir -p http:/link/123 &&
mv file.gif http://link/123/file.gif
在类似 Bourne/csh/rc 的 shell 中,要将file.gif
当前目录中该文件的条目重命名为该 URL,但将/
s 替换为s:\
mv file.gif 'http:\\link\123\file.gif'
在fish
shell 中,您仍然需要转义\
内部单引号:
mv file.gif 'http:\\\\link\\123\\file.gif'
另一种选择可能是使用看起来像 (U+002F 固相线) 的字符,/
例如⁄
(U+2044,分数斜线):
mv file.gif 'http:⁄⁄link⁄123⁄file.gif'