title: Unix: Find and rename multiple files with backslashes in filenames - Rename does not work
body: <p>I have a Nexenta NAS I'm running as an SMB fileserver.  So basically openindiana.  1 gigantic SMB share, shared with windows, OS X and linux clients. Somehow I ended up with a whole tree of files that have been named with their full windows path.  So for example:</p>
  
  <p>"clientname - clientnameseriespreview\images\imagename.gif"   That whole thing is a filename, not a path.  </p>
  
  <p>This causes issues with both client access to those files, and backups, because both of those happen thru SMB, so although the \ char is fine as far as the Mac and Linux clients go, they can't see or touch them over SMB.  </p>
  
  <p>On the server itself I have tried every method I could find to rename them.  Properly escaped, find has no problem finding them but "rename" doesn't seem to be able to touch them at all.  Mv works fine, but I'm not sure how to script that to run against the whole tree(thousands of files).  </p>
  
  <p>Pretty much every reference I've found for this kind of renaming is along the lines of:</p>
  
  <blockquote>
    <p>find -name '*\\*' -type f | rename 's/\\/_/g'    </p>
  </blockquote>
  
  <p>Of which the find part works, but rename does nothing.  Not quite sure what I'm missing...</p>
  
  <p>Thanks.</p>