![我如何进入并重命名“人类(2012)”之类的文件夹?](https://linux22.com/image/1052756/%E6%88%91%E5%A6%82%E4%BD%95%E8%BF%9B%E5%85%A5%E5%B9%B6%E9%87%8D%E5%91%BD%E5%90%8D%E2%80%9C%E4%BA%BA%E7%B1%BB%EF%BC%882012%EF%BC%89%E2%80%9D%E4%B9%8B%E7%B1%BB%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
我正在通过命令行使用 FTP,遇到了两个问题。我无法重命名或进入文件夹,例如:
dir /home/folder1/Human (2012)
我试过:
cd ~/folder1/Human\ (2012)
在这里我收到一条消息the folder does not exist
。
mv ~/folder1/Human\ (2012)
在这种情况下,我收到一条消息,内容是:
syntaxfailure at (
我怎么解决这个问题?
答案1
你可以用双引号引用你的路径:
cd ~/"folder1/Human (2012)"
或者您应该提供(
、)
和(空格) 的转义序列(因为这些是特殊字符):
cd ~/folder1/Human\ \(2012\)
和
mv ~/"folder1/Human (2012)"
使用转义序列:
mv ~/folder1/Human\ \(2012\)
答案2
您对空格前的 的想法是正确的\
。这适用于所有特殊字符(包括括号)。在左括号前加上一个反斜杠,在右括号前加上另一个反斜杠,这样就可以了。
在这些情况下,Tab 补全很有用...如果您开始输入文件名,然后按下Tab,它将自动完成文件名的其余部分,并在必要时插入反斜杠。(如果您输入的文件名不够多,无法明确表示您要输入哪个文件,bash 仍会尽可能自动完成文件名。按两次 tab 将显示文件名的可能补全列表。)
答案3
我同意 snoop 的观点,即"
在指定文件或目录时使用标记。
但是,如果有大量目录需要重命名,您可以使用将它们重命名为更友好的名称。重命名的工作原理rename
与重命名文件和目录类似,但通常用于编辑文件的内容。以下是一个例子:sed
rename
sed
rename 's/ //g;s/\(//g;s/\)//g' ~/folder1/*
因此,如果您在 中有以下目录~/folder1
:
Human (2012)
Human (2011)
Human (2010)
它们将被重命名为:
Human2012
Human2011
Human2010
运行以下命令以获取更多信息:
man rename