我知道您对同一问题还有许多其他疑问,但我还没有找到任何可以让我重现相同案例的内容。
情况很简单,我可以这样做:
$ touch example1.txt
但我不能这样做:
$ touch example2.txt
touch: cannot touch 'example2.txt': No such file or directory
在这种情况下, 和example1.txt
都是example2.txt
通过软件创建的文件,并且我们知道该example2.txt
文件可能在某个时刻创建(文件名具有由字母和数字组成的特定配置,没有字符特殊空格或空格)。
我们无法再获得有关产生这种情况的服务器的更多信息(它是客户端的服务器,我们已经以另一种方式解决了这种情况,创建另一个目录来存储文件),但我找不到什么发生了什么事。
即使使用root,我们也无法创建该文件(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