Publishers of technology books, eBooks, and videos for creative people

Home > Articles > Apple > Operating Systems

  • Print
  • + Share This
This chapter is from the book

Managing Hidden Items

Lion is a fully UNIX compliant operating system, and as such requires a number of files that the average user will never touch. The root level of the Mac’s system volume is littered with resources that UNIX processes require and UNIX administrators expect. Apple made the wise choice of configuring the Finder to hide these items from the average user. On a daily basis, the average user—and even most administrative users—does not need to access any of these items from the graphical interface. Realistically, the only people who even care about these normally hidden resources are going to be using Terminal to do their work anyway. In other words, keeping these system items hidden in the Finder not only provides a tidier work environment but also prevents average users from poking around in places they don’t need to go.

As a hybrid of UNIX and Mac OS technologies, Lion uses two methods to hide files and folders. The first is a UNIX tradition; simply using a period at the beginning of the item’s name will hide the item in both the Finder and while using the default options to list items with ls in Terminal. The second method is a Mac OS tradition; enable an item’s hidden file flag. This method, however, will only hide the item in the Finder.

Opening Hidden Items in the Finder

Should you want or need to open normally hidden items in the Finder, there are two methods. The first involves use of the Finder’s Go menu to open any folder; the second involves using the open command from Terminal to open any file or folder.

Using the Go Menu

To reveal hidden folders in the Finder:

  1. From the Finder, choose Go > Go to Folder from the menu bar, or you can use the Command-Shift-G keyboard shortcut.

    This will reveal a dialog allowing you to enter an absolute path to any folder on the Mac. A good starting place is a user’s Library folder, ~/Library; as covered previously, many system resources are found in this folder.

    ch4-011.jpg
  2. Click the Go button once you have entered the path.

The Finder will reveal the hidden folder in a window. Note the dimmed folder icon representing the normally hidden folder. To save time for when you return to the Go dialog, the previous path you entered will be there.

ch4-012.jpg

Using the open Command

The open command is a rather unique command that spans Terminal’s command line and the graphical interface. The open command can be used to open files, folders, and URLs from Terminal to an application in the graphical interface. Folders are opened in a Finder window, the default web browser opens URLs, and files are opened by the default application for the specified file type. Again, because Terminal doesn’t respect the hidden file flag, you can use the open command to open any hidden item as well.

The following example will use the open command to open the user’s current working folder from Terminal to a Finder window. The period used in the command is command-line shorthand for “this folder,” thus this example literally translates to “open this folder.”

MyMac:~ michelle$ open .

The next example will open the /private folder, which is normally hidden, in a Finder window:

MyMac:~ michelle$ open /private

This next example will open a file on Michelle’s desktop called Proof.pdf with the default PDF reader, most likely the Preview application:

MyMac:~ michelle$ open Desktop/Proof.pdf

This final example will open Apple’s main website in the default web browser, most likely the Safari application:

MyMac:~ michelle$ open http://www.apple.com/

Revealing Hidden Items via Terminal

From Terminal’s command line, you can easily override both types of hidden items. Again, by default, the ls command ignores the hidden file flag used by the Finder; thus it will simply show these items in the list. However, in its default mode the ls command doesn’t show items whose names begin with a period. You can modify this behavior by using the –a option to list all items.

In the following Terminal example, Michelle will use the ls command with the -a option to reveal all items at the root of a system volume:

MyMac:~ michelle$ ls -a /
total 36669
.                                                                       Users
..                                                                      Volumes
.DS_Store                                                               bin
.Spotlight-V100                                                         cores
.Trashes                                                                dev
.com.apple.timemachine.supported                                        etc
.file                                                                   home
.fseventsd                                                              mach_kernel
.hotfiles.btree                                                         net
.vol                                                                    private
Applications                                                            sbin
Developer                                                               tmp
Library                                                                 usr
Network                                                                 var
System                                                                  

Of the nearly 30 items at the root of the system volume shown in this example, only 5 are shown in the Finder: Applications, Developer, Library, System, and Users. All of these additional items are created and used by the operating system, so they should generally be left alone. Again, for this reason they are hidden to most users by the Finder.

Hiding or “Unhiding” Items

The easiest way to hide an item is to simply name it with a period at the beginning of the filename. However, to prevent novice users from accidentally hiding their items, the Finder will not let you save a file with a period at the beginning of its name. Therefore, you must use Terminal. Simply use the mv command to rename the item, as covered in Appendix B, “Command-Line Essentials.”

If you need to hide an item from the Finder, but you can’t change its name to start with a period, then you can enable the hidden file flag. This is also only possible from Terminal. You can use the chflags command with the hidden option to hide any item from the Finder. Conversely, you can use the chflags command with the nohidden option to permanently reveal an item in the Finder. Finally, you can use the -O option, along with the long list option -l, to show any file system flags, verifying which items have the hidden file flag enabled.

In the following example, Michelle uses the chflags command to permanently reveal her home Library folder. She also uses the ls command before and after to show the file flags, verifying that the folder is no longer hidden after the change. In this example, the output of the ls command has been truncated to show only the results of the ~/Library folder.

MyMac:~ michelle$ ls -lO
total 0
...
drwx------@ 48 michelle staff hidden 1632 Aug 3 18:35 Library
...
MyMac:~ michelle$ chflags nohidden Library/
MyMac:~ michelle$ ls -lO
total 0
...
drwx------+ 48 michelle staff - 1632 Aug 3 18:35 Library
...
  • + Share This
  • 🔖 Save To Your Account