有人可以帮我解决这个问题:
如下所示,我有一个与“sp”同名的文件和目录
如何删除大小为 44673Bytes 的文件“sp”
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
有人可以帮我解决这个问题:
如下所示,我有一个与“sp”同名的文件和目录
如何删除大小为 44673Bytes 的文件“sp”
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
诀窍是它们实际上没有相同的名称。其中之一的名称中有空白或非打印字符。试试看ls --escape。
尝试重命名文件(然后是其中任何一个)删除您不想要的文件(如果您想重命名文件夹,请再次重命名)
您不能有同名的目录和文件。其中一个可能有一个空格或其他一些不可打印的字符。
举个例子:
$ 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\ *
正如查理马丁所说,他们实际上并没有同名。但是您可以不使用rm sp*-r 选项(目录),只删除文件。