Windowsで「NUL」という名前のファイルを削除するにはどうすればよいですか?


49

という名前のファイルを見つけたWindows XPボックス(NTFSファイルシステム)がありますNUL。このファイルを通常の方法で削除することはできませんでした。同じディレクトリ内の他のファイルとは異なり、ファイルAdministratorSYSTEMグループ内で所有されているようです(他のファイルはユーザーIDによって所有されています)。

このファイルを削除するにはどうすればよいですか?それはどこから来たの?


3
NULはシステム予約語です。このウィキペディアの記事を参照してください。NULという名前のファイルがファイルシステムに存在することはありません。これはバグのあるソフトウェアが原因である可能性があります。DELETEコマンドプロンプトを使用してコマンドを使用して削除できる場合があります。
bwDraco

9
@DragonLord:ファイルシステムには、このような名前の問題はありません。たとえば、POSIX環境内でこのようなファイルを作成できます。(aux.cソフトウェアソースコードで類似した名前を見つけることができます。)これらの「デバイス名」を管理するのは純粋にWin32 APIです。
-grawity

CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、LPT9、およびCLOCKにも同じことが当てはまります$プラスいくつかの他-を参照してen.wikipedia.org/wiki/...
robocat

Cygwinは、通常「C:\ cygwin \ dev \ nul」にある「nul」という名前のファイルを作成します(または使用します)。これは私が数年に1度ヒットしたもので、私はGoogleであり、この質問に(再び)戻ってきました。
zarchasmpgmr

回答:


83

お試しください

Del \\?\C:\My\Path\NUL

コマンドプロンプトで。

詳細については、Microsoftサポートの記事を参照してください。「原因5:ファイル名には、Win32名前空間に予約名が含まれています」で、NTFSファイルシステムボリューム上のファイルまたはフォルダーを削除できません


1
ありがとう!うまくいきました!また、信頼できるドキュメントを参照していただきありがとうございます。ウェブ検索で、非常によく似たものが見つかりませんでした。その提案はの.代わりにありました?
グレッグマット

1
@グレッグ:確かに!ドキュメントは@DragonLordの助けでした。:-)そして、はい、.代わりに置くこと?はまったく同じことをしません-疑問符はサブシステムによるさらなる処理を防ぎますが、ピリオドは「現在のマシン」を意味します...それは間違いなく同じではありません紛らわしい。:)
Mehrdad

1
それが実際にそれを意味するかどうかはわかりません。\\.\ プレフィックスがあるため、デバイスの名前空間が、明示的な言及はありません.、それはディレクトリ名の場合と同じ意味(「現在のX」)を持っているが。
-grawity

4
作業ディレクトリがすでにnulファイルのあるディレクトリである場合、上記の解決策の代替として、次のことができますdel "\\?\%CD%\nul"%CD%パーツを作業ディレクトリに展開し、二重引用符(")ですべて「奇数」記号のパス名も処理し"\\?\C:\path,with\comma\nul"ます。
HenrikB

1
私の環境では、powershellや管理者権限のプロンプトからは効果的ではないようでしたが、標準の端末では効果的に機能しました。
ジャスティンC

13

また、Cygwinをインストールしている場合は、そのようなファイルまたはフォルダーに問題がないことを知りたい場合があります。特に、

rm -r /cygdrive/c/path/to/the/file/or/folder/you/want/to/delete

Cygwinターミナルに入力すると、指定したファイルまたはフォルダー、nulまたはそれを含むフォルダーが削除されます。これは、次のような他の特殊ファイル名にも適用可能ですCONPRNAUXCOM1COM2COM3COM4COM5COM6COM7COM8COM9LPT1LPT2LPT3LPT4LPT5LPT6LPT7LPT8


2
git bash
c33s

Gitをインストールしている場合は、GNU rmコマンドがあるので、cygwinは不要です。GNUツールのbinディレクトリをPATHに追加すると仮定すると、cmdのすべてのGNUグッズを使用できます。
icc97

8

これは、Googleの結果で高く、NULという名前のフォルダーで同様の問題があったため、ここに追加しています。残念ながら、上記の修正は役に立ちませんでした。私が見た他の多くのものもしませんでした。

私が試したrmdir\\?\C:\My\Path\NULし、 rmdir\\.\C:\My\Path\NUL任意の成功なしとも私SourceTreeインストールからのbashを使用していくつかのコマンドを試してみました。喜びはありません。

最後にDIR /X /A、cmdから親ディレクトリの短い名前をリストするために使用しました。これはNUL~1私のNULフォルダに対して返されました。

これが標準コマンドで使用され、rmdir /s NUL~1最終的に問題が修正されました。


うーん、それは特別な名前をバイパスするために短い名前を使用してかなり賢いです。
-SamB

1

Git for Windowsがインストールされている場合は、次の手順を実行します

  1. 削除するファイルを含むディレクトリを開きます
  2. 左クリックして選択 Git Bash Here
  3. 入力rm nul.jsonプロンプトとヒットで、入力したコマンドで、ファイルは削除されなければなりません。

ここでGit Bashを実行します

注:これらのスクリーンショットnul.topo.jsonは、単純な削除では削除できなかった別のファイルであるファイルの削除を示しています。

コマンド実行後

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.