As someone who spends a fair bit of time in Terminal, I’m always looking for handy timesaving Unix tips. A great source of such information is
commandlinefu.com, a site where users contribute their favorite tips. Much of what you’ll find there may not be directly applicable to OS X—as the site covers all versions of Unix and Linux—but a lot of it is.
After a command is submitted, other users can vote the submission up or down, based on how well they think it works. By focusing on the highly-rated submissions, you can quickly collect a good number of useful commands. To make this weeding-out process easier, commandlinefu.com has RSS and Twitter feeds for tips with a minimum of three “up” votes (
RSS) or ten “up” votes (
RSS). I use the 10-up Twitter feed, and it’s a great way to only see the really popular submissions.
Read more …
Today’s 10-up Tweet featured a simple improvement to the
ls -al command. This command lists all files in long format, and the output is quite verbose:
$ ls -ltotal 0drwx------@ 13 robg staff 442 Jun 5 09:23 Desktopdrwxr-xr-x@ 56 robg staff 1904 Jun 5 09:08 Documentsdrwx------+ 128 robg staff 4352 Jun 5 04:53 Downloadsdrwx------+ 73 robg staff 2482 Jun 3 10:43 Librarydrwx------+ 13 robg staff 442 Mar 26 16:23 Moviesdrwx------+ 8 robg staff 272 Jun 1 14:04 Musicetc...
But if you’ve got files with lengthy names, this output can get quite wide—and the thing you may be most interested in, the filename, will be a good distance off to the right. The
commandlinefu suggestion is to use
ls -hog instead. This “piggie” version of
ls uses three modifiers to simplify the output. The
h modifier converts file sizes to human-readable form (
4.3K instead of
4352). The next two options work together to eliminate both the owner (
robg) and the group (
staff) from the output. When you use this version of the command, the output is much cleaner:
$ ls -hogtotal 0drwx------@ 13 442B Jun 5 09:29 Desktopdrwxr-xr-x@ 56 1.9K Jun 5 09:28 Documentsdrwx------+ 129 4.3K Jun 5 09:28 Downloadsdrwx------+ 73 2.4K Jun 3 10:43 Librarydrwx------+ 13 442B Mar 26 16:23 Moviesdrwx------+ 8 272B Jun 1 14:04 Musicetc...
Now there’s only a bit of added information at the front—the permissions on the file, and the number of hard links (
ln) to that file. If you’d rather not see those columns, you can send the output of
ls to the
cut command, which can trim columns from the output prior to display. In this case, the file size information starts at the 20th character, so the command (and its output) look like this:
$ ls -hog | cut -c 20-442B Jun 5 09:34 Desktop1.9K Jun 5 09:28 Documents4.3K Jun 5 09:28 Downloads2.4K Jun 3 10:43 Library442B Mar 26 16:23 Movies272B Jun 1 14:04 Musicetc...
Now the output from
ls shows only the most basic information for each entry: size in human-readable form, time of last modification, and filename. As this little hint shows, there are many ways to do things on the Unix side of OS X. Following the tips on commandlinefu.com—and our occasional Terminal hints here on Macworld—is a good way to get more familiar with the Unix side of your Mac.