Any file or folder that begins with '.' is going to be hidden in the Finder. That has always been true, back to the days of NeXTStep.
If what you are trying to do is automatically rename files that begin with a '.' to not begin with a '.' that can easily be accomplished with a shell script. Save the following as /usr/local/bin/rename-dot-files.sh
:
#!/bin/zsh -f
DIR="$HOME/Downloads/"
cd "$DIR"
ls -1Ad \.* | egrep -v '.DS_Store|.localized' | while read line
do
NEWNAME=$(echo "$line" | sed 's#^\.##g')
/bin/mv -vn "$line" "$NEWNAME"
done
exit 0
That script will look in $HOME/Downloads/
for any files that start with a . (excluding .DS_Store and .localized which you do not want to rename) and will rename it to the same name, without the '.' as long as there is no other file/folder with that same name.
To do this automatically you will need to create a launchd
plist that will automatically launch any time the directory changes:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>com.tjluoma.rename-dot-files</string>
<key>Program</key>
<string>/usr/local/bin/rename-dot-files.sh</string>
<key>RunAtLoad</key>
<true/>
<key>WatchPaths</key>
<array>
<string>/Users/luomat/Downloads/</string>
</array>
</dict>
</plist>
Obviously you'll want to change the path from /Users/luomat/
to whatever your $HOME is.
Save that plist to ~/Library/LaunchAgents/com.tjluoma.rename-dot-files.plist
and then load it as:
launchctl load ~/Library/LaunchAgents/com.tjluoma.rename-dot-files.plist
The script will run whenever the ~/Downloads/ is changed, which includes any files being added or removed, but it automatically limits itself to files which begin with '.'
Ahhh this is embarrassing. Seems like this is a hardware problem. I tried following the steps Apple support suggested, and when I do the keyboard input identification in System Preferences OSX tells me my keyboard isn't recognised. I've just remembered I scrubbed the keyboard with a cleaner cloth a few weeks ago to try and get rid of the yellow grease it had accumulated - I guess this must've messed it up. Sorry Mavericks! Thanks a lot for your help Asmus!
Lesson: wear gloves when using white keyboard.
Best Answer
Your
if
statement test,[ ... ]
, is not properly formed, change:To: