CIFSからコロン付きディレクトリを削除する

CIFSからコロン付きディレクトリを削除する

ネットワークドライブ(ファイルシステム:CIFS)にコロンを含むディレクトリ(Ubuntuを使用)を削除することはできません。 このディレクトリをどのように削除できますか?(rootアクセス権はありませんが、読み取り/書き込みアクセス権)

rmdir ':5N0A210'/出力rmdir ':5N0A210'

rmdir: failed to remove ':5N0A210': No such file or directory

出力ls -li

123011781 drwxr-sr-x 2 username domain users      0 May 31 10:00 :5N0A210

出力ls -1b

:5N0A210

出力find . -inum 123011781 -delete

find: cannot delete ‘./:5N0A210’: No such file or directory

出力rename 's|:|-|g' *

Can't rename :5N0A210 -5N0A210: No such file or directory

「:test」ディレクトリを作成し、エラーなしで削除できることに気づきました。

':5N0A210'を作成して削除することもできますが、GUIを更新するとすぐに表示されます。ls -li以前と同じ inode 番号が表示されます。

また、「:4N0A210」(「5」を「4」に変更)を作成し、エラーなしで削除することもできます。

すべてのテストは「:5N0A210」と同じディレクトリで行われます。

答え1

ディレクトリから:5N0A210

rm -rf ./\:5N0A210

rm -rf ':5N0A210'

rm -rf ./:5N0A210

rm -rf :5N0A210

これらはすべて私の環境で動作します。

修正する

上記のコマンドを使用してサーバー側から削除することもできます。サーバーにアクセスできない場合は、そのアクセス権を持つユーザーにサーバーを削除するよう依頼してください。

答え2

Windowsファイル名にはある範囲の予約文字は使用できません\ / : * ? " < > |。 CIFSはこの規則に従います。つまり、ファイル名にこれらの文字を使用することはできません。

これらの文字を視覚的に類似した代替文字に変換するようにSAMBAを構成できますが、vfs catiaこれはデフォルトではないため、インスタンスで構成されていない可能性があります。 (そうであれば、単純なシェル文字のワイルドカード?だけでもコロンと一致することができます。rmdir ?5N0A210つまり、.しかしすでに試しましたが失敗しました。)

唯一の他の解決策は、ファイルシステムをホストしているサーバーからディレクトリを直接削除することです。これがWindowsの場合、ファイルシステムのチェックによりディレクトリ名が強制的に変更されます。 SAMBAを使用するUnix / Linuxであれば、単純なrmdir(またはrm -rf)で十分です。

関連情報