「ls」が散発的に「。」だけを出力するのはなぜですか。外付けドライブのルートディレクトリに?


9

USBフラッシュドライブのルートディレクトリで、を実行するlsと、出力が正常になり、ファイルが一覧表示されます。それ以外の場合、出力は単純に1行です。

$ ls
.

ls -laこれらのいずれかを試した場合、次のようになります。

$ ls -la
ls: .: Invalid argument

ls複数回連続して実行すると、正常な出力または異常な出力が基本的にランダムに返されるようです。

ls他のディレクトリでは正常に動作するようです。ls $drivename親ディレクトリからは正常に機能するls ..ように見え、子ディレクトリからも正常に機能するようです。(最初は動作が不定なので、「正常に動作する」ものを100%確信することはできませんが)他の2つの外付けUSBドライブを試しましたが、同じ動作が得られました。

何が起きてる?Mac OS X 10.11.3を使用しています。

編集:いい考えですが、エイリアスを使用していないようで/bin/ls、同じ結果が得られます。


2
この異常な動作は、エイリアスの誤動作の結果である可能性があります。使用するとどうなります/bin/lsか?
DopeGhoti 2016

lsは他のディレクトリでも問題なく動作しますか?
Liam

/bin/ls同じ結果が得られ、時にはが出力され.ます。ls他のディレクトリでは正常に動作するようです。ls NO\ NAME親ディレクトリからは正常に機能するls ..ように見え、子ディレクトリからも正常に機能するようです。(最初は動作が不定であるため、「正常に動作する」ものは100%確信できません。)
leekaiinthesky

これらのフラッシュドライブでどのファイルシステムを使用していますか?おそらく、Windowsベースのファイルシステムに由来する異常です
RSFalcon7

どのバージョンlsを使用していますか?/bin/ls --version機能するはずです
RSFalcon7

回答:


6

最近のバージョンのOSXのFAT32のファイルシステムドライバーのバグである可能性があります。これは、作業ディレクトリがマウントされたドライブのルートにある場合にも発生するようです。それがサブディレクトリまたはシステムの他の場所にある場合、問題はないようです。

このスレッドには、システムトレースを含むいくつかの興味深い議論があります。 https://github.com/robbyrussell/oh-my-zsh/issues/4161


2

回避策:(おそらく、質問者が特に要求していなくても、質問者がおそらく感謝することの一部)

以外のほとんどの方法で現在のディレクトリを参照し.ます。例:

cdサブディレクトリに移動lsし、親ディレクトリで実行します。つまり、次のように入力します。

mkdir S; cd S ; /bin/ls -al ..

または、フルパス名で参照してください。例:

ls /Volumes/microSD007

私にとって、lsOPが報告したのと同じ間違った出力が表示された場合、これらの回避策のいずれかが機能します(つまり、期待される出力になります)。(そして私にとって、ls奇妙な行動をとると、dmesgには出力がありません。)

bashを実行しているTerminal.appの10.12.6でも同じ誤動作が見られます。cshおよびでsh、TERMをvt100に設定した後でも同じです。この回避策はそれらのシェルでも機能します。

そしてstat64zsh問題のスレッドNeilが指摘するように、にバグがあることに同意します。(問題の原因はフラッシュメモリの欠陥や偽物であると私は思っていましたが、それが原因であるかどうか疑問に思います。)

このバグは以下にも影響することに気づきました:

  • Emacsのdiredのモード、それが呼び出すためls、および
  • ls Emacsのシェルモードで使用される場合。

2
Goroが編集を行った理由がわかりません。編集の概要も提供されていません。私は彼らが答えを悪化させたと思います、そして今私はそれが-1を受け取ったのを見ます。回避策を提供しました。「回避策」インジケーターを削除すると、直接回答を要求/試行しているように見えます。私はコメント以上のものを提供していると思いますが、回答よりも少ないです。それは奨励されることではないですか?私は新しいと識別されました。編集の要約と-1の理由は適切ではないでしょうか?五郎は、私が追加したより短い、より良い答えも削除しました。わかりません。
マシューエル

1
私はフェンスの上にいます。一般的に、回答は質問に答えるだけでなく、詳細情報を提供する必要がありますが、問題を回避することは、質問者が具体的に言及していなくても、おそらく質問者が探していたものの一部です。ほとんどの編集は不要のようであり、少なくとも1つは間違いなくフォーマットを混乱させるので、ロールバックしました。投稿に反対票があったかどうかはわかりませんが、現在は反対票2票と反対票0票です
Michael Mrozek

0

ときどきドライブを取り外した場合の答えは、ドライブを再挿入するたびに、cdを使用してディレクトリに戻る必要があるということです。これは、シェルがディレクトリを読み取るために開いたファイル記述子は、ドライブが削除されると無効になり、ドライブが再挿入されたときに自動的に再初期化されないためです(ドライブを別のターミナルまたはファイルマネージャーで使用した可能性があります)。

ドライブが取り外されない場合は、ハードウェアの問題か、何らかの理由でドライブをアンマウントするソフトウェアの可能性があります。システムログを提供する必要があります。

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