Repost: 5 Terminal Hacker tips for the Mac

[This is a repost from my HackTheDay blog of 6 years ago. But these are rare-to-find tips that are still highly valuable.]

You don’t really need a reason to try out these Mac OSX tips and hacks. But they are fun, probably useful and definitely will get a nice reaction from your friends. They all involve typing some commands in the Terminal.app(each command is followed by the Enter key); if commands start with sudo, you might be asked to also type down your Mac administrator password(which you ought to have set when you first logged to your computer). For instructions on finding Terminal.app and tips on using it, see our great Terminal.app tutorial.
Continue reading “Repost: 5 Terminal Hacker tips for the Mac”

*nix tip of the day

I keep having the following problem when dealing with svn: I frequently find myself wanting to add to my own SVN repository stuff(javascript libraries, rails plugins) retrieved from some other svn repositories. The inevitable outcome of my bold attempt is that SVN starts complaining that the new folders can’t be submitted, that they already are under code control or something.

The reason is because when copying entire FOLDERS from one svn repository to another, you also copy their associated .svn folders with svn-specific information. These .svn folders are usually hidden, but you can see them (on Unix/Linux/OSX) by running ls -la from the terminal.

So you see my problem: I want to copy files or folders into my code repository, but don’t want to involve svn into this. I want them to be added as new files/folders, regardless of where they came from.

The following command-line command has helped me avoid quite a bit of frustration today:


find . -name "*.svn" -print
find . -name "*.svn" -ok rm -rf {} \;

The first command lists recursively all svn-specific subfolders of the current one.
The second command displays them to me one after the other and patiently awaits I press ‘y’ to remove it.
Extremely useful, right?
For many more uses of the find command, check out this page – where I learned about the useful ‘ok rm’ trick.