Posts tagged linux
Last week I found something quite frustrating with the tar command on Mac OS X, it likes to put hidden files into archives when you tar them up, it doesn’t give you any warning, just does it.
Creating a tar, and then having a look at its contents, you’ll see something like this :
JamesMac:staging-area JElsey$ tar -tf MyApplication.tar.gz src/ src/._MyApplication.cmd src/MyApplication.cmd src/._MyApplication.properties src/MyApplication.properties src/lib/ src/lib/._anExternalJar.jar src/lib/anExternalJar.jar
Notice the files prefixed with “._”.
You can quite easily stop this, by setting the following environment variable (I prefer to set this up in the bashrc_profile):
Messing around with your subversion directories and fed up of the .svn hidden folders laying around? If you try and checkin some directories that contain a .svn folder from some other repository, you’re going to have a whole world of pain trying to fix it (speaking from first hand experience here)
The easiest way to clear up rogue .svn directories is to run this command (on linux or mac). It will recursively find all directories named .svn, and pass them in for removal.
I came across a brilliant little feature of the linux sed command today that I wasn’t aware of, and thought it was well worth posting up about.
I’d been using sed statements inside a bash script, to trawl through property files and replace values, these were all alphanumeric values so I didn’t have any problems with the usual sed comand of
sed -e s/replaceThisValue/withThisValue/g
That worked great, but then I had some properties introduced that contained special characters, notably the forward slash and equals. I scanned the interwebz for answers and there were all sorts of complicated techniques for escaping special characters, passing them into awk and all sorts of other such nonsense, however there is a much simpler way, just use a different separator character.
I recently need to check if a particular application is online and listening on a particular set of ports. I figured that the best way to do this was to periodically issue some socket connects onto those ports. If I got an exception, then clearly there would be an issue.
This was all running on a CentOS Linux machine, so I opted for a Python script, have a look at my sample below