删除unix文件的问题

时间:2012-05-18 19:41:50

标签: unix

有人可以帮我解决这个问题:

如下所示,我有一个与“sp”

同名的文件和目录

如何删除文件“sp”44673Bytes

的文件
opxnyd@opxzone1d:/opt/opxnyd/packages/OPXPNY3DB/src/OPXPNYP>ls -alrt 
-rwxr-xr-x   1 opxnyd   opics      44673 Sep  7  2011 sp
drwxr-xr-x   4 opxnyd   opics       1974 May 10 10:22 sp

4 个答案:

答案 0 :(得分:2)

诀窍是他们实际上并没有相同的名字。其中一个名称中有空白或非打印字符。请尝试ls --escape查看。

答案 1 :(得分:0)

您不能拥有同名的目录和文件。其中一个可能会有一个白色空间或其他一些不可打印的字符。

举个例子:

$ touch "sp"
$ mkdir "sp "
$ ls -lrt
total 2
-rw-r--r--  1 user  staff    0 May 18 15:47 sp
drwxr-xr-x  2 user  staff   68 May 18 15:47 sp 

要删除只能使用以下命令的文件:

find -E . -depth 1 -type f -regex "\./sp[ \t]*" -exec rm {} \;

或者遵循rm命令:

\rm -i sp\ *

答案 2 :(得分:0)

像查理马丁说的那样,他们实际上并没有相同的名字。但是你可以在没有-r选项(目录)的情况下执行rm sp*,只删除文件。

答案 3 :(得分:0)

尝试重命名文件(其中任何一个,然后)删除你不想要的文件(如果你想重命名文件夹,再重命名)