當檔案名稱包含冒號 (:) 或其他特殊字元時,如何刪除 CIFS 掛載上的 (rm) 檔案?

當檔案名稱包含冒號 (:) 或其他特殊字元時,如何刪除 CIFS 掛載上的 (rm) 檔案?

在我的 LAN 上,我有一台帶有加密共用資料夾的 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 的技巧不起作用。

然後我使用smbclient而不是cifs mount,檔案名稱顯示為DOS 8.3格式,但刪除命令仍然找不到它。但del *在該目錄中使用(這是唯一剩下的檔案)成功刪除了該檔案。

列出 cif 掛載:

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

相關內容