在Unix上删除“C:\ Blah \ Blah \ .. \ ... \ Blah”文件

时间:2014-03-06 16:14:59

标签: windows cygwin filenames linode

我有一个远程Linode,我正在使用Cygwin访问。创建了一个错误的数据库文件,特别是“C:\ Users \ Blah \ Blah \ website \ blah \ sqlite.db”。此文件用于我的Windows机器上的本地测试,但是由于Linode上的错误而生成。注意,这是Linode内部的完整文件名,而不是它的位置。这是Windows语法,而不是Unix,我认为这就是问题所在。

现在,我无法删除它!它说,无法删除文件名中没有任何原始反斜杠的文件“文件名”。这告诉我它无法识别这是一个错误的Windows数据库文件。

我该如何删除?如果我可以访问GUI文件夹,我可以使用它,但我只有命令行!

请帮忙!

1 个答案:

答案 0 :(得分:0)

反斜杠和冒号不是文件系统的特殊字符(这就是为什么你的名字中可以包含这些字符的文件),但反斜杠是shell的一个特殊字符(而:是特殊的一些情况)。

您只需将文件名称传递给rm命令即可​​。要从shell执行此操作,您需要转义反斜杠字符。

这应该有效:

rm C:\\Users\\Blah\\Blah\\website\\blahsqlite.db

例如(我刚在我自己的系统上尝试过这个):

$ touch C:\\Users\\Blah\\Blah\\website\\blahsqlite.db
$ ls
C:\Users\Blah\Blah\website\blahsqlite.db
$ rm C:\\Users\\Blah\\Blah\\website\\blahsqlite.db
$

如果您的shell支持制表符完成,那么您可以只键入rm C 制表符 并且,如果当前目录中没有名称以C开头的其他文件,则shell会将其扩展为文件名的(转义版本)。 (Bash碰巧在\前插入一个:;这是不必要的,但无害。)