我有一个远程Linode,我正在使用Cygwin访问。创建了一个错误的数据库文件,特别是“C:\ Users \ Blah \ Blah \ website \ blah \ sqlite.db”。此文件用于我的Windows机器上的本地测试,但是由于Linode上的错误而生成。注意,这是Linode内部的完整文件名,而不是它的位置。这是Windows语法,而不是Unix,我认为这就是问题所在。
现在,我无法删除它!它说,无法删除文件名中没有任何原始反斜杠的文件“文件名”。这告诉我它无法识别这是一个错误的Windows数据库文件。
我该如何删除?如果我可以访问GUI文件夹,我可以使用它,但我只有命令行!
请帮忙!
答案 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碰巧在\
前插入一个:
;这是不必要的,但无害。)