filenames starting with a '-'

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: plug@arcticmail.com
Date:  
Subject: filenames starting with a '-'
I believe that it depends on the particular executable.
In other words, it depends on cp or mv's command-line
processing code, not on the shell you're using. Anyway,
a double-hyphen ("--") is oftentimes used to indicate
to the executable that it should stop processing
switches/options.

In your case, you should be able to do something like

     mv  -i   --  -001 foo-001
         ^^   ^^
          \    \___ stop processing switches
           \
            \____ -i (interactive) switch



To find out for sure, take a gander at mv's source code
and getopt's source code.

For files or dirs with REALLY interesting names (like control
characters or extended ASCII characters), find's "-inum"
(to match on a particular inode number) can usually do the
trick. To determine an inode's inode number, use "ls -li".


$ date > -001

$ ls -li
total 1
  75841 -rw-rw-r--    1 foo   bar         29 Apr  1 04:01 -001
  ^^^^^
     \___ The inode number of regular file "-001" is 75841


$ find . -xdev -inum 75841 -exec mv {} rubles4source \;

$ ls -li
total 1
  75841 -rw-rw-r--    1 foo   bar         29 Apr  1 04:01 rubles4source



D

* On Sat, Oct 28, 2000 at 10:12:12PM -0700, Don Harrop wrote:
> I was using gphoto to get some images form a camera and didn't assign a
> default filename to prefix the -001 -002 -003... etc.. Now I've got a
> bunch of filenames that start with a '-' and when I use cp or mv on the
> files it thinks that it's an option instead of a file. Is there an
> undocumented option that will make cp/mv realize that it's dealing with a
> file? There are other ways to solve the problem but I'd like to know how
> to do it with cp/mv...
>
> Don