cd and rm a directory with '^M'

Wayne Sierke ws at au.dyndns.ws
Fri Sep 12 06:17:40 UTC 2008


On Thu, 2008-09-04 at 01:28 -0400, DAve wrote:
> Edwin Groothuis wrote:
> >> I had rsync create a directory with a '^M' in it.
> > 
> > Use command-line completion:
> > 
> > [~/xx] edwin at k7>touch foo^Mbar		# that's ^V^M
> > [~/xx] edwin at k7>ls -l
> > total 0
> > -rw-r--r--  1 edwin  edwin  0 Sep  4 13:46 foo?bar
> > [~/xx] edwin at k7>rm foo <TAB>		# autocompletes to foo^Mbar
> > 
> > 
> If you find yourself on a machine without a full featured shell you can 
> delete by the inode number. Chuck Swiger saved my bacon with that trick 
> several years ago.
> 
> [sysadmin /usr/home/sysadmin]$ touch abc^M
> [sysadmin /usr/home/sysadmin]$ ls -i
> 2449500 abc?   2449511 env.sh
> [sysadmin /usr/home/sysadmin]$ find . -type f -inum 2449500 | xargs rm
> [sysadmin /usr/home/sysadmin]$ ls -i
> 2449511 env.sh
> 
However, note that using find's -x option could avoid subsequent
consternation, embarrassment, or worse. -x avoids having find search
over multiple filesystems which in this case avoids having find stumble
upon files with the same inode num on different filesystems. Relevant to
any type of find criteria, but -inum introduces a nice degree of
(user-level) randomness to the mix.

Of course, the old adage always applies - "If in doubt - print it
out!" (Not very catchy, is it?)


Wayne




More information about the freebsd-questions mailing list