MacBook Pro (15-inch, 2016) and later and MacBook Pro (13-inch, 2016, Four Thunderbolt 3 Ports) and later feature the Touch Bar, which changes automatically based on the application that you're using to show you relevant, familiar tools and controls. On some models, the Esc button appears on the left side of the Touch Bar, in the same place the physical Esc key appears on traditional keyboards.
The escape character in bash is the backslash. A character that follows a backslash will be treated with no special meaning: $ cd /Library/Application Support In Finder, you can name files and folders nearly any way you want. When you encounter special characters from the list above you have to escape them with backslash. In order to actually swap the escape key with the caps lock key (not just map one to the other) using both PCKeyboardHack and KeyRemap4MacBook, you have to follow the instructions in this thread, mapping the caps lock key to a keycode not used by the keyboard but accounted for by KeyRemap4MacBook (eg. Then, in PCKeyboardHack, select the appropriate option that maps that keycode to escape (in.
Sometimes tools in the Touch Bar temporarily cover the Esc button:
After you tap or the Done button, Esc reappears.
How to use another key as Esc
You can choose a physical key to act as Esc, temporarily or permanently:
- Choose Apple menu > System Preferences.
- Select Keyboard.
- In Keyboard preferences, click Modifier Keys.
- Use one of the pop-up menus to choose another key to act as Esc.
For example, if you choose Escape to the right of the Control (^) Key label, pressing Control has the same results as pressing Esc: it closes menus that are open, and pressing Control-Option-Command makes the Force Quit Applications window appear.
You can return your keyboard to its original behavior by clicking Restore Defaults.
How to force apps to quit using Esc alternatives
You might not be able to use the Esc button in the Touch Bar if the app you're using becomes unresponsive.
If you need to use Esc to force an app to close, you can switch to another app and try Option-Command-Escape. You can also choose Apple menu > Force Quit.
If that doesn't work, or if your Touch Bar doesn't respond in any app, restart your Mac. Choose Apple menu > Restart or, if your Mac isn't responding, press and hold Touch ID (power button) until your Mac turns off.
Using Esc in Windows
When you use Boot Camp to run Windows 10 on your Mac, Esc is in the same place on the Touch Bar as it is when you're using macOS.
You can also access Esc through the Windows on-screen keyboard. From the Windows menu, select the Windows Ease of Access menu item. Then select On-Screen Keyboard.
If you like this series and want to learn Terminal and the shell on macOS in more detail, get my book “macOS Terminal and Shell“
There are a group of characters that have special meaning in bash.
Murphy's Escape Mac Os X
Also whitespace characters also need to be treated with care:
The space character is a legal and often used character in file names on macOS. However, in
bash
and other shell commands , a space character (and other whitespace characters) separates a command from an argument and the arguments from each other.When you try to enter a filename with a space, you will get an error:
To convince the shell that ‘
/Library/Application Support
’ belongs together, you can either ‘escape’ the space character or ‘quote’ the path.Experienced users who have worked in a UNIX environment for a long time tend to avoid these special characters in filenames. However, as a system administrator, your users will probably not heed any rules you may want to impose. You will have to deal with many possible combinations.
Escaping Characters
The escape character in
bash
is the backslash
. A character that follows a backslash will be treated with no special meaning:In Finder, you can name files and folders nearly any way you want. When you encounter special characters from the list above you have to escape them with backslash. For a directory named ‘Project (Old & New)’ you would type:
All of this further confused by the fact that the shell will happily display the path with the unescaped special characters:
Separation Characters
In
bash
(and in Unix in general) files and directory names cannot contain a forward slash /
since the character is used in paths to separate directories. However, Finder lets you name a file or folder with a forward slash, e.g. ‘Yes/No’.On the other hand, Finder does not let you name a file or folder with a colon
:
. The underlying HFS+ file system uses the colon as a separator.This conflict is solved by translating a
/
in the Finder (and underlying file system) to a colon :
in the shell and vice versa.A folder named ‘Yes/No/Maybe’ in Finder will appear as
Yes:No:Maybe
in the shell and you have to escape the colons when using the path in a command:Note: some characters that are legal on macOS might not be on file servers, which are usually hosted by other operating systems.
Quoting
As seen above, escaping characters can make the path quite unreadable. You can also place the name or path in quotes:
In
bash
you can use single quotes '
or double quotes '
to quote paths.Single quotes are more effective. Any character in single quotes is used as is, with no special function. Even the backslash character has no special function. The only character you cannot use in single quotes is the single quote itself.
Double quotes
'
are ‘weaker’ quoting. Double quotes remove the special function from all special characters except $
, , <code></code>, and <code>!</code>. Within double quotes you can use the backslash to escape <code>$</code>, <code>'</code>,
, and
(but not the !
).Escape Strategies
Murphy's Escape Mac Os 11
In general, single quotes are most useful and easiest to use. However, you cannot use single quotes when the filename contains a single quote.
Double quotes still require some characters to be escaped with the backslash and cannot deal with an exclamation mark
!
.Backslash escaping works in nearly all cases, but can be tricky to type right and is quite illegible.
name (in Finder) | Backslash Escape | single Quotes | Double Quotes |
---|---|---|---|
My Great Folder | My Great Folder | 'My Great Folder' | 'My Great Folder' |
“New” Files | 'New' Files | 'New' Folder' | 'New' Folder' |
‘Old’ Stuff | 'Old' Stuff | cannot escape ' | 'Old' Stuff' |
Important! | Important! | 'Important!' | cannot escape ! |
Bump m/ | Bump m: | 'Bump m:' | 'Bump m:' |
Do@Home | Do@Home | 'Do@Home' | 'Do@Home' |
Yes/No/Maybe | Yes:No:Maybe | 'Yes:No:Maybe' | 'Yes:No:Maybe' |
Project (Old & New) | Project (Old & New) | 'Project (Old & New)' | 'Project (Old & New)' |
Profit$$$ | Profit$$$ | 'Profit$$$' | 'Profit$$$' |
Quoting and Tab Completion
When typing paths, always use tab completion to be safe. Tab completion uses backslash escaping by default.
However, when you start a quoted path, tab completion will complete in quoted form.
Tab completion is even smart enough to change the approach when the strategy you chose (i.e. double quotes) cannot work:
Quoting and Home Path
Since you generally use quoting to avoid
bash
changing characters, you cannot use the ~
to get a short cut to your home directory in quotes.Murphy's Escape Mac Os Download
However, you can leave the
~
outside of the quotes and get the best of both worlds:When you use double quotes, you can also use the
$HOME
environment variable:Next: Commands