'*'という名前のフォルダ

21
2022.03.09

古いハードドライブを閲覧しているときに、*という名前のこのフォルダに出くわしました。

star

Windowsから開いたり、アクセスしたり、名前を変更したりできません。

windows error

MobaXtermからアクセスしてみました。

 ls -l
ls: ./*: No such file or directory
 cp \* star
cp: can't stat '*': No such file or directory

破損していますか?それを修正する方法はありますか?

回答
10
2022.03.09

*は、Windowsファイル名で許可されていない文字の1つです(ワイルドカードの展開はWindowsのファイルシステムによって行われるため)。ただし、一般にNTFSで許可されているため、このようなディレクトリがあるからといってファイルシステムが破損しているわけではなく、ディレクトリが別のOSを使用して作成されているだけです。

Cmdの\\?\NTパスを使用して名前を変更してみてください。

 move \\?\E:\██████████████\* \\?\E:\██████████████\badfolder

(具体的には、この場合は「ren(ame)」ではなく「move」を使用します。後者は*文字に対して独自の特別な処理を行うためです。)

それでも問題が解決しない場合は、Linuxを実行しているシステムにディスクを接続するか、WSLを介してディスクにアクセスしてみてください。 WSL1でさえ、すべての高レベルのWindows APIをバイパスするため、機能する可能性があります。

(たとえば、MobaXtermやgit-bashにあるLinuxツールのWindowsポートは、最終的には通常のWindowsプログラムであり、同じ制限を受けるため、あまり役に立ちません。一方、WSL1また、古いInterix / SfUツールはWin32とは完全に異なる「サブシステム」であり、カーネルのみを共有しますが、ファイル名の制限の影響を受けません。)

4
2022.03.11

最終的にはWSLを使用してこれを回避したように見えますが、フォルダーに8.3の短い名前を使用することで、WSL/Cygwinをインストールせずにこれを処理できたと思います。

エクスプローラーから現在のディレクトリでcmdプロンプトを取得するには、[ファイル]メニューの[Windows Powershellを開く]オプションを使用し、シェルでcmdと入力してcmd.exeに切り替えます。

Open Windows PowerShell

dir /xを実行して、現在のディレクトリのコンテキストを一覧表示し、 renという名前のフォルダの短い名前を取得してから、その短い名前でフォルダを参照して*を使用します。

WSLを使用してWindowsファイルシステム上に*という名前のフォルダーを作成し、上記の手順に従ってDOS互換の短い名前(この場合は21BA~1 )を決定し、 を使用して名前をstarに変更します。

 PS C:\Users\Nick\Scripts> cmd
Microsoft Windows [Version 10...]
(c) Microsoft Corporation. All rights reserved.

C:\Users\Nick\Scripts>dir /x
 Volume in drive C has no label.
 Volume Serial Number is ABCD-1234

 Directory of C:\Users\Nick\Scripts

03/11/2022  05:26 PM    <DIR>                       .
03/11/2022  05:26 PM    <DIR>                       ..
10/10/2020  04:30 PM             1,225 PORT-F~1.PS1 port-forward.ps1
03/11/2022  05:26 PM    <DIR>          21BA~1       
               1 File(s)          1,225 bytes
               3 Dir(s)  166,006,308,864 bytes free

C:\Users\Nick\Scripts>ren 21BA~1 star

C:\Users\Nick\Scripts>dir
 Volume in drive C has no label.
 Volume Serial Number is ABCD-1234

 Directory of C:\Users\Nick\Scripts

03/11/2022  05:40 PM    <DIR>          .
03/11/2022  05:40 PM    <DIR>          ..
10/10/2020  04:30 PM             1,225 port-forward.ps1
03/11/2022  05:26 PM    <DIR>          star
               1 File(s)          1,225 bytes
               3 Dir(s)  166,006,243,328 bytes free
2
2022.03.11

簡単な解決策は、 Cygwinをインストールし、それを使用してフォルダーの名前を変更することです。フォルダパスがC:\Users\hans\Desktop\*であるとしましょう。Cygwinターミナルを開いて、次のように記述します。

 cd 'C:\Users\hans\Desktop'
mv '*' 'star'

そして出来上がり、あなたのフォルダは*ではなくstarという名前になりました