If it is a file that is called ‘ ‘, i.e. a single space, you can delete it a couple of ways:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$ touch \ $ ls -la total 4 -rw-rw-r-- 1 foo bar 0 Nov 24 11:26 drwxrwxr-x 2 foo bar 512 Nov 24 11:26 . drwxr-xr-x 10 foo bar 1024 Nov 24 11:25 .. $ rm ' ' $ ls -la total 4 drwxrwxr-x 2 foo bar 512 Nov 24 11:26 . drwxr-xr-x 10 foo bar 1024 Nov 24 11:25 .. $ touch \ $ ls -la total 4 -rw-rw-r-- 1 foo bar 0 Nov 24 11:26 drwxrwxr-x 2 foo bar 512 Nov 24 11:26 . drwxr-xr-x 10 foo bar 1024 Nov 24 11:25 .. $ ls -lia total 4 320 -rw-rw-r-- 1 foo bar 0 Nov 24 11:26 319 drwxrwxr-x 2 foo bar 512 Nov 24 11:26 . 6 drwxr-xr-x 10 foo bar 1024 Nov 24 11:25 .. $ find . -inum 320 -exec rm {} \; $ ls -la total 4 drwxrwxr-x 2 foo bar 512 Nov 24 11:26 . drwxr-xr-x 10 foo bar 1024 Nov 24 11:25 .. |
Also, it might actually be some kind of control character … observe:
|
1 2 3 4 5 6 7 8 9 10 11 |
$ touch ^G (CTRL-V CTRL-G) $ ls -la total 4 -rw-rw-r-- 1 foo bar 0 Nov 24 11:27 drwxrwxr-x 2 foo bar 512 Nov 24 11:27 . drwxr-xr-x 10 foo bar 1024 Nov 24 11:25 .. $ ls -lba total 4 -rw-rw-r-- 1 foo bar 0 Nov 24 11:27 \007 drwxrwxr-x 2 foo bar 512 Nov 24 11:27 . drwxr-xr-x 10 foo bar 1024 Nov 24 11:25 .. |
Easy to remove with the same find . -inum technique above.
If the file starts with a - character, e.g.:
|
1 2 |
$ ls -l -rw-rw-rw-- 1 foo bar 0 Nov 24 11:27 -foo |
try removing it:
|
1 |
$ rm -foo |
Obviously it’ll whinge about -foo not being an option … so:
|
1 |
$ rm -- -foo |
That’ll do it. -- tells the command to stop interpreting arguments as options. You can use this technique with other commands too, e.g. mv, file, etc.