同じ問題について他に多くの質問があることはわかっていますが、同じケースを再現できる項目が見つかりませんでした。
状況は簡単です。これを行うことができます。
$ touch example1.txt
しかし、私はこれを行うことはできません:
$ touch example2.txt
touch: cannot touch 'example2.txt': No such file or directory
この場合とは、両方ともexample1.txt
ソフトウェアによって生成されたファイルであり、ファイルが特定の時点で生成された可能性があることexample2.txt
を知っています(ファイル名は文字と数字の特定の構成を持ち、特別なスペースやスペースはありません)。example2.txt
この状況を引き起こしたサーバーについてはもう情報を取得できませんが(クライアントのサーバーであり、ファイルを保存する別のディレクトリを作成してすでに別の方法で状況を解決しました)、何が起こったのかがわかりません。
ルートとしてもファイルを生成できません(mkdir example2.txt
、、rm -rf example2.txt
同じエラーが発生し、ls -laF
ファイルは表示されません)。
ディレクトリはSambaを介してWindowsシステムと共有され、これがそれに関連している可能性があると考えていましたが、成功しないまま同様の状況を再現するためにいくつかの方法を試しました。
今は似たような状況を作ろうとするのにダメなので本当に気になりました。
基本的に私が探しているのは、状況を再現する方法、状況を解決する方法(可能であればソフトウェアで状況を処理し、そうでない場合はサーバー管理者にログを生成して迅速に解決する方法)です。
似たような状況を再現できる方法をご存知の方は、共有していただければ幸いです。
このディレクトリには場所が指定されており/tmp/software_files
、その中にファイルまたはディレクトリを作成できます。example2.txt
ファイルのみこのような状況を作成します。
答え1
mkdir test && cd test && rm -r ../test && touch fail; cd
touch: cannot touch 'fail': No such file or directory
または
touch other/fail
touch: cannot touch 'other/fail': No such file or directory
確認できますが、トラップを使用することをお勧めします
if [ ! -d "$(pwd)" ] ; then echo fail; fi