同一父目录中具有相同名称的文件和目录-Solaris 8,ufs

时间:2020-03-05 18:58:52  来源:igfitidea点击:

好的,我使用Solaris已有10多年了,但从未见过。。。

我有一个目录列表,其中包含同名的文件和子目录:

-rw-r--r--   1 root     other    15922214 Nov 29  2006 msheehan
drwxrwxrwx  12 msheehan sysadmin    2048 Mar 25 15:39 msheehan

我使用file来发现文件的内容,并且得到:

bash-2.03# file msheehan
msheehan:       directory
bash-2.03# file msh*
msheehan:      ascii text
msheehan:       directory

我不担心文件,但是我想保留目录,所以我尝试rm:

bash-2.03# rm msheehan
rm: msheehan is a directory

所以这是我的两部分问题:

  • 这是怎么回事?
  • 如何仔细删除文件?

乔纳森

编辑:
谢谢你们的回答,两个人(到目前为止)都很有帮助,但是将列表发送给编辑者确实很成功,ala:

bash-2.03# ls -l > jb.txt
bash-2.03# vi jb.txt

其中包含:

-rw-r--r--   1 root     other    15922214 Nov 29  2006 msheehab^?n
drwxrwxrwx  12 msheehan sysadmin    2048 Mar 25 15:39 msheehan

务必小心使用退格键!

解决方案

回答

快速回答我自己的问题的第二部分...

我想我可以重命名目录,删除文件,然后再将目录重命名为原始目录。

...我仍然很想知道其他人的想法。

JB

回答

我怀疑其中一个人的名字中有一个奇怪的人物。我们可以尝试使用shell通配符扩展来查看:

cat msh*

然后按通配符扩展键(在我的外壳中为Ctrl-X *)。我们应该列出两个名称,也许其中一个带有转义字符。

回答

我猜这些实际上是两个"看起来"相同的不同文件名,因为当外壳程序通过名称的扩展版本时,命令文件能够区分它们。实用程序,以查看它们是否确实具有相同的名称,或者是否涉及非打印字符。

回答

我想知道是什么原因造成的。除了文件系统错误外,它还可能是由于某种原因导致的非ascii特征造成的。在这种情况下,请使用具有更轻松字符串语义的另一种语言来执行该操作。

看看这个红宝石代码片段的输出将是很有趣的:

ruby -e 'puts Dir["msheehan*"].inspect'

回答

要查看文件中是否包含特殊字符,请尝试ls的-b或者-q选项,
假设solaris 8具有这些选项。

作为删除文件的另一种方法,我们可以启动图形文件浏览器
(糟糕!)并将不需要的文件拖放到垃圾箱中。

另一种解决方案可能是将一个文件移动到其他名称(没有未知特殊字符的文件),然后使用通配符删除特殊字符目录名称。

mv msheehan temp
rm mshee*
mv temp msheehan

当然,我们要确保只有要删除的文件与通配符匹配。
而且,对于特定情况,由于一个是目录,另一个是文件,因此此命令可能已解决了所有问题:

rmdir msheeha*

回答

一种查看非打印字符和空格的快捷方法是将输出通过cat -vet传递给管道,例如:

# ls -l | cat -vet

很容易记住!

回答

对于第2部分,由于一个名称包含两个额外的字符,因此可以使用:

mv sheehan abc
mv sheeha??n xyz

完成此操作后,我们将再次获得合理的文件名,可以根据需要进行修复。

回答

我们可以使用iNode删除

如果在" ls"中使用" -i"选项

$ ls -li
total 1
20801 -rw-r--r-- 1 root root 0 2010-11-08 01:55 a?
20802 -rw-r--r-- 1 root root 0 2010-11-08 01:55 a\?
$ find . -inum 20802 -exec rm {} \;
$ ls -li
total 1
20801 -rw-r--r-- 1 root root 0 2010-11-08 01:55 a?

我有一个示例(西班牙语),我们如何在Solaris上使用iNode然后删除文件
http://sparcki.blogspot.com/2010/03/como-eliminar-archivos-utilizando-su.html

Urko,