Linux でディレクトリとして作業していたディレクトリを開けなくなったのはなぜですか?

Linux でディレクトリとして作業していたディレクトリを開けなくなったのはなぜですか?

作業を完了するために、マシンに SSH 接続しています。ホーム ディレクトリには、以前はサブディレクトリがありました。これを と呼びましょう。このサブディレクトリには、他のディレクトリと同じように (つまり)を使用して、ディレクトリmyDirectory内から移動できます。homecdcd ./myDirectory

ここで、コマンドを実行すると、次のエラーが発生します。

「myDirectory はディレクトリではありません」

lsを実行すると、myDirectory他のディレクトリとは色分けされ、以前とは異なっています。できるただし、 を実行しmv someFile ./myDirectory、最近、この方法でいくつかのファイル (現在アクセスする必要があるファイル) を移動しました。

つまり、myDirectory明らかにディレクトリを指していますが、~/myDirectoryもう指していません。問題は理解していると思いますが、ディレクトリにアクセスするためにどのコマンドを使用すればよいかわかりません。このディレクトリにアクセスしたり、新しい場所を特定したりするにはどうすればよいでしょうか?

このコマンドを実行します:

ls -ld myDirectory

生産:

-rw-rw-r-- 1 myUsername myUsername 15029 Nov  2 17:57 myDirectory

答え1

-の出力の最初のものはls -ld myDirectorymyDirectory通常ファイルディレクトリではありません。

これがどのように起こったのかは推測することしかできません。 1 つの可能性は、あなた (または誰か/何か) が元のディレクトリ の名前を変更/移動/削除したためmyDirectory、 という名前のエントリがmyDirectoryそこに存在せず、その後、何らかの通常のファイルの名前someFileを に変更したことですmyDirectory

mv someFile ./myDirectorysomeFileに名前が変更されますmyDirectory。 という名前の古い通常ファイルmyDirectory(存在する場合) は失われます。つまり、この方法で複数のファイルの名前を変更した場合、簡単に復元できるのは最後のファイルだけです。そのファイルは という名前になっていますmyDirectory

このような事故を避けるには、ディレクトリと思われるものを参照するときに末尾にスラッシュを追加します。

mv someFile ./myDirectory/

./myDirectoryディレクトリではなかった場合、ツールは何も移動せずにエラーを出力します。

ここまでは、someFile通常のファイルであると想定していました。ディレクトリタイプ(これもファイルです)その後(何をしたいかによって異なります)さらに追加すると良いかもしれません/.の代わりに/

関連情報