无法使用“rm”删除文件

Alv*_*Sim 4 unix files aix

在我们的一台服务器 (IBM AIX) 中,我们在路径 /data/1002/ 中有一个文件,我们无法使用“rm”命令删除或删除该文件。我们得到的错误信息是“rm:S1208001.002:路径名中的文件或目录不存在”。

使用“-f”选项,没有显示错误消息,但文件仍然存在。

该文件的字节大小为“0”,当我使用“touch S120801.002”命令时,我在该目录中看到两个文件名相同的文件。

目录列表如下:

$ ls -l total 56
-rwxrwxrwx    1 oracle   dba               0 Feb 09 11:57 S1208001.002 
drwxrwxrwx    4 nobody   dba           24576 Feb 09 13:36 backup
Run Code Online (Sandbox Code Playgroud)

我如何删除这个虚假的 fie?

谢谢。

更新 1

使用touch命令后,目录列表如下:

$ ls -l total 56
-rwxrwxrwx    1 oracle   dba               0 Feb 09 11:57 S1208001.002 
-rwxrwxrwx    1 oracle   dba           77790 Feb 09 14:30 S1208001.002
drwxrwxrwx    4 nobody   dba           24576 Feb 09 13:36 backup
Run Code Online (Sandbox Code Playgroud)

Rob*_*vak 8

听起来这个文件名可能包含一个不可打印的字符。这将解释“触摸”制作不同的文件。

尝试类似的东西

       ls -b
Run Code Online (Sandbox Code Playgroud)

在目录里看看是不是这样?

然后你应该能够做这样的事情:

       rm -i S*2 
Run Code Online (Sandbox Code Playgroud)

即使带有隐藏字符,它也应该提示您输入文件。

或者,您可以使用 find 来执行此操作...

       find . -name S\*2 -exec /bin/rm -i {} \;
Run Code Online (Sandbox Code Playgroud)

应该提示您输入文件...我不知道 AIX 的“查找”语法是否异常,因此这可能不起作用,但是“rm -i”部分应该让您在命令错误时中止命令。

  • 如果非打印字符位于名称的开头或结尾,您的建议将不起作用。但是,您的技术可以适用于这些情况。 (2认同)