「cd / myOtherFolder」でUSBドライブをナビゲートすると、「そのようなディレクトリはありません」というエラーが発生する


11

端末でUSBドライブのファイルシステムをナビゲートすると、Raspberry Pi B +では発生しなかった奇妙なことが発生します。これを明確に表現する方法がよくわからないので、

  1. コマンドラインを開き、USBドライブに移動します cd /media/pi/MYUSB/

  2. cdUSBドライブのフォルダに入るのに使用しますcd /myFolder/myOtherFolder

  3. で後方に移動myFolderしますcd ..

  4. 私は再び移動しようmyOtherFoldercd /myOtherFolder。ただし、これによりbashエラーが発生しますbash: cd: /myOtherFolder: no such file or directory

これが何で何が起こっているのか私にはわかりませんが、以前はエラーメッセージなしでこれを行うことができました。Raspberry PiにUSBドライブが組み込まれた状態で停電することがあるので、電源をオフにしてからオンにすると、ゴーストUSBドライブに記載されているような「ゴーストUSBドライブ」が残ります

回答:


32

パス名の先頭に/を付けます!これがルートディレクトリです。つまり、次に書くのは絶対パスです。とにかく/ media / pi / MYUSB /内にマウントされている場合、/ myFolder / myOtherFolderはUSBにありません。

しかしcd myOtherFolder、あなたが求めている場合に使用することができます。Linux(またはUnix)のファイル処理、ファイルシステムなどに関する基本的なチュートリアルを読むことをお勧めします。


10

もう少し詳しく説明します—

WindowsまたはMac OS Xのバックグラウンドを持っているかどうかに関係なく、外付けドライブはハードディスクから独立した場所です(多かれ少なかれ)。

Unixの伝統の一部は、「可能な限り特別なケースを避ける」ことです。たとえば、Unix(およびGNU / Linux)では、キーボードはテキストファイルのように開いたり読み取ったりできるファイルとして表されます。シリアルポートも同様です(書き込みも可能)。Raspberry Piでは、GPIOピンもこのように制御できます。というファイルがあり、/dev/zeroそれを読み取ると0バイトのシーケンスが生成されます。等。

これは、あらゆる種類の特別なケースを必要とせずにプログラムを構築できるという素晴らしいアイデアでした。

とにかく、同様の伝統で、(ルートディレクトリ)から始まるシステム全体の1つのディレクトリ構造があります/。特別なケース、「ドライブレター」はありません。ただ/

ドライブは、mountコマンドを使用してこの構造のどこかに「接続」できます(Raspberry Piはこれを自動的に行うように構成されていますが、手動で行うこともできます)。

すべてのファイルのパスは/、何らかの方法で派生します(たとえば、/home/pi/test.txt)。このため/、で始まるパスは、システム全体のルートディレクトリから始まる「絶対」パスであると見なされます。なしで/開始時に、それは「相対」パスとみなされ、それはカレントディレクトリから始まるすなわち。

他の2つのトリック—で始まるパス..が親ディレクトリを参照していることをおそらく知っています。で~始まるパスは、ホームディレクトリから始まります。たとえば~/test.txt、現在のディレクトリが何であっても同じように機能します。


3
完全を.期すために、で始まるパスは現在のディレクトリを参照しています。これは、現在のディレクトリに保存されているコマンドを実行したい場合に重要です。単にタイプfooすると、$PATHが検索され、その中にリストされている、という名前のファイルを含む最初のディレクトリfooが実行されます。しかし、タイプ./fooすることはシェルに現在のディレクトリを探すのではなく明示的に探すように指示します$PATH
モンティハーダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.