ターミナルウィンドウで、次のように入力しました。
mv filename ..\.. [Note the wrong slash.]
今、私はそれを見つけることができません。消えた。いくつかの検索を実行し、回復可能な削除済みファイルを調べました。なし。失礼。直前にWindowsマシンを使用するのにぴったりです。
誰がどこに行ったのか知っていますか?
それはどこにも行かず、現在のディレクトリにあります。 ....
(4つのドット)に名前が変更されました。
.
が前にあるファイル名は隠しファイルとして扱われるため、隠されています。したがって、ls
を実行すると、見つかりません。いつものように、隠しファイルを表示するにはls
の-a
(または-A
)オプションが必要です。つまり、表示するにはls -a
(またはls -A
)です。
mv filename ..\..
を実行した場合、最初の2つのドットは../
であれば親ディレクトリを意味しますが、バックスラッシュ..\
を使用して、次をエスケープすることを示します文字ですが、ドット.
はシェルにとって特別な意味を持ちません。したがって、それはリテラル.
として扱われ、最後に追加された.
も追加されるため、ファイル名として4つのドット....
が得られます。
以前の(元の)名前に戻すには、mv .... filename
を実行します。
mv .... filename
を実行して、名前を変更します。 (mv ..\.. filename
も機能しますが、\
は不要です。元のコマンドと同じです。)
.
および..
エントリはすべてのディレクトリに存在し、それぞれ「現在」および「親」ディレクトリを参照します。ただし、Windowsとは異なり、3つ以上のドットのシーケンスには特別な意味はありません。珍しいことですが、少なくとも3ドットの長さであれば、通常のファイルに完全にドットだけで構成される名前を付けることは完全に自由です。\
をエスケープ文字として使用し、シェルが特別な意味を与えるのではなく、次の文字を文字どおりに処理するようにします。 .
文字は、シェルでは特別な意味を持ちません(特に、.
および..
エントリを機能させるのはシェルではありません)。したがって、コマンドでは、\.
は.
と同等でした。.
で始まるファイルとディレクトリを表示しません。 ....
は.
で始まるため、-A
または-a
フラグなしでls
を実行しても表示されませんでした。これはまだ同じディレクトリにあり、「隠しファイル」になっています。 「mv .... filename」で回復できます。