手记

Linux下无法删除文件名带有 \ 或 / 的文件 使用单引号解决

问题

  • 当一个文件有特殊字符或者\以及/的时候,是无法直接通过rm命令删除的
sudo rm -rf \jssdk\access_token.php  命令无效

  • 想改名的话,用mv命令也不行,根据报错可以发现,系统执行的时候会把\替换变成空,因此找不到对应文件。

  • 考虑到可能需要字符转义,在\前面单独加' 仍然不行。说明转义的方式还要改一下,不应该只用单引号对一个字符处理。

mv ./\jssdk\access_token.php ./a.php  命令无效
mv: cannot stat './jssdkaccess_token.php':
No such file or directory


mv '\jssdk '\access_token.php a.php 命令无效
mv : cannot stat '\jssdk access_token.php':No such file or directory

解决方法

  • 命令里 把文件名用单引号括起来 再执行rm删除命令
sudo rm ./ '\\jssdk\\access_token.php'

或者
sudo rm '\\jssdk\\access_token.php'
  • 注意删除需要权限

0人推荐
随时随地看视频
慕课网APP