当文件名包含冒号 (:) 或其他特殊字符时,如何删除 (rm) CIFS 挂载上的文件?

当文件名包含冒号 (:) 或其他特殊字符时,如何删除 (rm) CIFS 挂载上的文件?

在我的局域网上,我有一个带有加密共享文件夹的 Synology NAS。它们通过 CIFS 安装在我的 Debian 计算机上(NFS 仅适用于未加密的共享文件夹)。

//<NAS_IP_ADDRESS>/<SHARED_FOLDER> /mnt/<MOUNT_FOLDER> cifs _netdev,credentials=<PATH_TO_CREDENTIALS>,iocharset=utf8,mapchars,uid=<UID>,gid=<GID>,setuids 0 0

当我尝试操作(rm,,stat... mv)包含特殊字符(通常是冒号)的文件时,出现错误

rm: cannot remove '<FILENAME>': No such file or directory

我该怎么做才能解决这个问题?可能是更改安装参数或 Samba 配置中的某些选项?

提前致谢!

答案1

刚刚遇到了同样的问题。文件显示在目录列表中,但无法打开/删除。find 或 inode 的技巧都不起作用。

然后我改用smbclientcifs mount,文件名显示为 DOS 8.3 格式,但删除命令仍然找不到它。但del *在那个目录中使用(这是唯一剩下的文件)成功删除了该文件。

列出 cifs 安装:

ls: 'VK? NEWS - 2009.pdf.2018-12-03T01:24:59+01:00.snapshot.gz': No such file or directory
total 897
-rwxrwxrwx 1 root root 891372 Nov 13  2012 VK? NEWS - 2009.pdf.2018-12-03T01:24:59+01:00.snapshot.gz

通过 smbclient 列出/删除:

smb: \main\rdiff-backup-data\increments\userfiles\> dir
  .                                   D        0  Wed Oct 16 00:01:34 2019
  ..                                  D        0  Tue Oct 15 23:06:52 2019
  V9AGMV~L.GZ                         A   891372  Tue Nov 13 11:35:24 2012

                104857600 blocks of size 1024. 30534775 blocks available

smb: \main\rdiff-backup-data\increments\userfiles\> del V9AGMV~L.GZ
NT_STATUS_NO_SUCH_FILE listing \main\rdiff-backup-data\increments\userfiles\V9AGMV~L.GZ

smb: \main\rdiff-backup-data\increments\userfiles\> del *

smb: \main\rdiff-backup-data\increments\userfiles\> dir
  .                                   D        0  Wed Oct 16 00:05:42 2019
  ..                                  D        0  Tue Oct 15 23:06:52 2019

                104857600 blocks of size 1024. 30534775 blocks available

相关内容