ファイル名にコロン (:) またはその他の特殊文字が含まれている場合、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が発生します。statmv

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

この問題を解決するにはどうすればいいでしょうか? おそらく、マウント パラメータまたは samba 構成のオプションを変更するのでしょうか?

前もって感謝します!

答え1

同じ問題が発生しました。ファイルはディレクトリ リストに表示されますが、開いたり削除したりできません。find や inode を使ったトリックは機能しませんでした。

次に、cifs マウントの代わりに使用しましたsmbclient。ファイル名は 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

関連情報