所以我从 aMule 下载了一张音乐专辑,它位于.aMule/Incoming
目录中。我尝试使用以下命令将其移出:
mv albumName.rar ~
这给我留下了一个无法重命名的文件,因为波形符是为主目录保留的~
。.aMule/Incoming
我知道我可以通过显示隐藏文件通过 Nautilus 访问它。如何在终端中将其拉出?
更新 这就是现在的样子
manuzhang@manuzhang-R458-R457:~/.aMule/Incoming$ ls -l
total 328
-rw-r--r-- 1 manuzhang manuzhang 297266 2012-03-19 12:07 ~
-rw-r--r-- 1 manuzhang manuzhang 34479 2011-10-11 19:51 [kat.ph]friends.season.1.with.english.subtitles.torrent
答案1
mv \~ ~/albumName.rar
mv '~' ~/albumName.rar
mv ./~ ~/albumName.rar
您始终可以通过在 shell 中添加反斜杠来保护在 shell 中具有特殊含义的字符。
您始终可以通过将序列放在单引号内来告诉 shell 按字面意思解释序列。不能放入此类文字字符串中的唯一字符是单引号本身,因为它指示文字字符串的结尾。您可以使用'\''
;它的意思是“文字的结尾、字符'
、文字的开始”,但您可以将其视为将单引号放在单引号内的文字字符串内的奇怪方式。
该字符~
仅在路径开头是特殊的,因此如果您放置目录指示,~
则将是该目录中文件的名称。
请注意,如果文件名以 开头-
,则只有这三种方法中的最后一种有效。这是因为-
对于 shell 来说并不特殊;它对该命令有特殊含义:它表示一个选项。防止这种特殊含义的另一种方法-
是将特殊选项放在--
其前面:--
在命令行上指示选项的结尾,只有文件名(或其他非选项参数)可以在其后面。
另请注意,您显示的命令应该已将文件复制到您的主目录,因为该~
字符应该由 shell 解释。您可能输入错误并创建了一个不名为~
.运行ls -q
或ls -Q
查看文件名是否包含不可打印的字符。如果没有提供任何视觉指示,请尝试ls | od -t o1
,它将显示文件名中每个字节的八进制代码。在 ksh、bash 或 zsh 中,您可以$'\123'
在命令行中使用八进制代码指定字符。或者,您也许能够找到与该文件匹配的模式。例如,如果您确定文件名的长度为 3,并且长度为 2 的其他文件只有foo
和bar
,则可以使用
mv ./[^bf]?? ~/albumName.rar
如果您愿意使用鼠标并且名称由您不知道如何输入的可打印字符组成:从ls
.
答案2
指定文件的路径。
cat ./~
答案3
粘贴的更新显示它是一些高位 ASCII 或 Unicode 字符,而不是简单的波形符...您可以使用mc
或其他文件管理器吗?把所有东西都搬过来怎么样别的离开该目录,然后使用制表符补全?