Открыть папку или файл из терминала
Бывает, сидишь такой в терминале, и надо файл из текущей папки по-быстрому открыть в редакторе. Или картинку посмотреть. Или PSD в Фотошопе открыть.
И ты такой идёшь, в проводнике находишь эту папку, потом нужный файл, потом открываешь. А можно-то открыть одной командой прямо из терминала.
Mac OS
Чтобы открыть папку в файндере, передайте имя папки. Текущая папка — точка:

Открылась папка в Finder
Если передать имя файла, он откроется в программе по умолчанию. CSS в текстовом редакторе, картинки в превью, PSD в фотошопе:

Файл открылся в фотошопе
Если нужно открыть в приложении не по умолчанию, используйте опцию -a . У меня дефолт для JS-файлов это Sublime Text. А в атоме я открою такой командой:

Файл открылся в атоме
Даже сайт можно открыть:

Сайт открылся в браузере
У команды open есть и другие опции, посмотрите их вот так:
Можно и наоборот папку из файндера открыть в терминале. Просто перетащите папку на иконку терминала в доке. А если перетащить в открытое окно терминала, то в команду подставится путь к этой папке.
Windows

Папка открылась в проводнике

Файл открылся в редакторе

Файл открылся в блокноте

Сайт открылся в браузере
Внимательный читатель заметил, что команда start работает из cmd, из PowerShell и из bash (cmder). Справку по команде start можно получить в PowerShell или cmd вот так:
Если вы используете Cmder или ConEmu, то можно настроить и открытие папки из проводника в терминале.
Linux
Команда xdg-open . Тоже умеет открывать папки, файлы и адреса. Типа:
Справку по команде xdg-open можно получить так:
Если вы не знаете, как открыть файл в нужном приложении из терминала, просто откройте папку, в которой лежит файл, а дальше мышкой. Даже это сэкономит ваше время.
Работа с папками и файлами в командной строке macOS
![]()
В статье рассмотрены синтаксис и примеры основных команд для работы с папками и файлами в командой строке macOS. Вы узнайте как создать, скопировать, переместить, удалить папки и файлы, как посмотреть дерево папок и т.п.
Cодержание
Большинство задач при работе с папками и файлами в macOS можно решить с помощью Finder. Командная строка может пригодится, когда необходимо устранить какую-нибудь проблему или включить скрытые настройки macOS, скопировать нужные данные при удаленном подключение к Mac через ssh или написать скрипт для автоматизации рутинных задач.
Для работы в командной строке macOS откройте Terminal, для этого через Finder перейдите в:
Как узнать полный путь к текущей папке
После открытия Terminal по умолчанию пользователь находится в своей домашней папке. Полный путь к текущей папке можно узнать с помощью команды pwd.
pwd – «present working directory», можно перевести как «текущая рабочая папка».

Как в терминале macOS перейти в папку
Переход между папками осуществляется с помощью команды cd.
cd – «change directory», можно перевести как «сменить папку» или «перейти в другую папку».
cd [путь к папке]
Перейдите в папку Desktop [Рабочие стол], для этого наберите команду:

Чтобы вернуться обратно к домашней папке наберите команду:
«-» – данная опция используется для перехода в последнюю просмотренную папку. Обратите внимание, что после выполнения команды cd – в Terminal будет выведет символ «
» – в командой строке macOS является синонимом полного пути к домашней папке текущего пользователя, чтобы убедится в этом наберите команду pwd.

Как перейти в домашнюю папку пользователя
Если нужно перейти в домашнюю папку пользователя под которым вы запустили macOS, наберите команду:
Для перехода в домашнюю папку другого пользователя используйте полный путь:
Для быстрого ввода имен файлов, папок, путей и команд используйте клавишу ⇥ tab . Вместо того, чтобы набирать на клавиатуре длинное имя файла полностью, которое может содержать пробелы и специальные символы, которые необходимо правильно экранировать, достаточно просто начать вводить начало имени и нажать клавишу ⇥ tab .
Как перейти в папку на уровень выше
«..» – опция две точки используется для перехода в папку на уровень выше, наберите в Terminal:

Если нужно перейти в папку на несколько уровней выше добавляйте «/» между «..», например так можно перейти в папку на два уровня выше:

Для перехода в корневую папку macOS используйте команду:

Обратите внимание, если в имени папки или файла содержится пробел, например «Новая папка», имя необходимо поместить в одинарные или двойные кавычки:

Или поставить обратный слэш «\» перед пробелом:

Это связано с тем, что командная строка воспринимает пробел как конец команды.
Как посмотреть содержимое папки
Просмотр содержимого папки осуществляется с помощью команды ls.
ls – «list files in the directory», можно перевести как «вывести список файлов в папке».
Давайте посмотрим содержимое текущей папки, для этого наберите команду:

По умолчанию команда ls выводит список с именем всех папок и файлов в виде колонок. Для того, чтобы изменить вывод списка можно воспользоваться следующими опциями:
-A – отображение всех файлов за исключением “.” и “..”.
-a – отображение в том числе скрытых файлов, которые начинаются с точки “.”.
-f – отображение списка файлов без сортировки.
-l – отображение детального списка, который включает: размер файла, создатель, дата/время создания и т.д.
-h – отображение размера файлов в KB/MB/GB, а не только в байтах.
-r – сортировка файлов в обратном порядке.
-S – сортировка файлов по размеру.
-t – сортировка файлов по дате последнего изменения.
-u – сортировка файлов по дате последнего открытия.
Например можно вывести подробный список (-l) содержимого текущей папки, отсортированный по размеру (-S) в обратном порядке (-r), размер файлов отображается в KB/MB/GB (-h):

Как посмотреть содержимое файла
Посмотреть содержимое файла можно с помощью команды cat.
cat – «concatenate», можно перевести как «конкатенировать», в контексте просмотра содержимого файла имеется в виду связывание строк для вывода на экран.
Для просмотра содержимого текстового файла macmaniac.txt введите:

Как в командной строке показать папки и файлы отмеченные тегом в Finder
Для вывода списка папок и файлов, которые были отмечены тегом в Finder, можно воспользоваться командой mdfind.
mdfind – «metadata find», можно перевести как «поиск метаданных».
mdfind ‘kMDItemUserTags=’ [-опции]
Например в домашней папке пользователя macmaniac есть следующие папки и файлы, которые отмечены тегом «Красный»

Для того, чтобы вывести их список, находясь непосредственно внутри домашней папки, наберите:

Либо используйте опцию -onlyin, если необходимо указать полный путь к папке:
mdfind ‘kMDItemUserTags=Красный’ -onlyin /Users/macmaniac

Как в командной строке посмотреть информацию о папке или файле
Обычно в macOS посмотреть информацию о папке или файле можно через Finder в меню Свойства

В командной строке аналогичную информацию можно посмотреть с помощью команды mdls.
mdls – «metadata list», можно перевести как «список метаданных».

Как в Terminal посмотреть содержимое внешнего диска
Для того, чтобы посмотреть содержимое внешнего жесткого диска или USB-флешки необходимо с помощью команды cd перейти в папку /Volumes
Затем с помощью команды ls вывести список подключенных дисков (что бы найти нужный) и с помощью команды ls вывести его содержимое. Например так можно посмотреть содержимое USB-флешки с именем «Macmaniac»:

Как посмотреть дерево папок в командной строке macOS
К сожалению в командной строке macOS нету встроенной команды для просмотра дерева папок. Чтобы вывести дерево папок необходимо из Homebrew установить утилиту tree.
Homebrew– менеджер приложений для macOS, с помощью которого можно устанавливать сторонние приложения для командной строки (и не только).
Для установки Homebrew вставьте в Terminal следующую команду и введите пароль администратора, если потребуется:
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
Не закрывайте Terminal пока скрипт установки не закончит свою работу.

После завершения установки в Terminal должно появится сообщение Installation successful! и заголовок Next steps со списком команд, которые нужно поочередно вставить в Terminal и нажать ↩ return :
echo ‘# Set PATH, MANPATH, etc., for Homebrew.’ >> /Users/macmaniac/.zprofile echo ‘eval “$(/opt/homebrew/bin/brew shellenv)”‘ >> /Users/macmaniac/.zprofile eval “$(/opt/homebrew/bin/brew shellenv)”
Теперь можно установить tree, для этого введите следующую команду:
How to edit a file from the command line Mac OS X?
How to open and edit the file in the command line? I tried to use the command open :
but the file is Locked and I can not change anything.

I need to edit a lot of text and use nano or vim is not very convenient.
3 Answers 3
I suspect this is because the permission elevation is for the open command, not TextEdit itself.
You should use a different editor that can have its binary run properly from the command line like SublimeText ( sudo subl /path/to/file ) or TextMate ( sudo mate /path/to/file ). Or just suck it up and use vi or nano 🙂
If you’re going to be doing a lot of this type of thing TextEdit is probably the least desirable editor to use anyhow.
The easiest way to edit those locked files is to make a copy of them, edit the copy, and then replace the file:
-
The Overflow Blog
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.3.11.43304
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Терминал на Mac (macOS): что это, команды, синтаксис – понятный гид для начинающих
Сегодня все мы в 99% случаев работаем с Mac через приятный, понятный и удобный графический интерфейс пользователя. Но при решении ряда специфических задач даже Finder не справится с тем, что сделает старая добрая командная строка…

Например, с её помощью гораздо проще – и быстрее! – искать затерявшийся где-то в недрах системы 5-гигабайтный файл или путь к приложению, которое, как вы думали, уже давно удалено.
Что такое «Терминал»?
Терминал – стандартная системная утилита для взаимодействия с Mac при помощи командной строки. В Linux есть похожий инструмент управления, т.к. обе ОС являются Unix-подобными.
Интерфейс командной строки (command line interface или сокращенно CLI) – он же язык общения с Терминалом – называется bash. Всё, о чем мы расскажем ниже – это bash-команды.
Общие команды для Mac
Основной синтаксис
Bash-команда обычно строится так:
[Команда] [Опции] [Ввод или путь к файлу или директории]
ls – это команда, -la – это соединение двух опций (-l и -a), а /Applications – это путь к списку.
Если вы поймете путь, то поймете и то, как macOS в действительности видит ваши файлы. Как? Да как в матрешке – одна за другой. Например, вот путь к файлу под названием «Мои секреты», лежащему на Рабочем столе: /Users/Yablykworld/Desktop/My Secrets.
Пробелы
С пробелами действует простое правило – ничего лишнего!
Почему? Дело в том, что bash считает пробел концом команды!
Если у вас есть папка с пробелами в названии – например, Yablyk Folder, и вы пытаетесь вывести её содержимое с помощью команды ls /Applications/Yablyk Folder, то соответствующий файл не будет найден, и на выходе появится ошибка:

Чтобы решить эту проблему, понадобятся кавычки или обратный слэш. Вот теперь всё будет правильно:
ls /Applications/»Yablyk Folder» , или
ls /Applications/Yablyk\ Folder
Многим командам требуется доступ с уровня администратора. Если вы сейчас пользуетесь Mac не под аккаунтом его «админа», но знаете пароль, введите в командную строку перед текстом самой команды sudo – (что означает «single user do», «делает один пользователь»). Так вы временно получите привилегии администратора и возможность произвести необходимые операции без смены аккаунта.
Команды Терминала для улучшения продуктивности
- Заменяет: Spotlight
- Почему лучше: работает быстрее, осуществляет поиск и по системным папкам (тогда как Spotlight в них не ищет или плохо индексирует их содержимое).
Синтаксис find состоит из четырех частей:
2. путь к директории, в которой вы хотите искать информацию (например, /Applications);
3. опции (например, -name дает find возможность искать файлы, которые подходят к заданному названию);
4. непосредственно сам поисковый запрос (например, Google Chrome).
Вот как выглядит вся команда в целом:
find /Applications -d 1 -name «*Google Chrome*»
Примечание: «звездочки» (*) указывают на то, что используется regex (регулярные выражения).
- Заменяет:⌘Cmd + I, т.е. команды для отображения информации;
- Почему лучше: может показать сразу несколько папок за один раз, и обычно выполняется быстрее.
du – это сокращение от «disk usage». Команда поможет быстро узнать размер конкретного файла или папки, или даже списка файлов внутри папки.
Лучшие опции для du:
-d («глубина», или depth): если за этой буквой стоит цифра, то find ограничит поиск по директории соответствующим количеством уровней. Например, если вы отдадите вашему Mac команду du:
Терминал выдаст вам информацию только об общем «весе» папок и файлов в папке Applications, без данных о размере подпапок, вложенных в эти папки.
-h (human readable, или «человеко-читаемые»). Выводит размеры файлов в привычных людям величинах – K (килобайтах), М (мегабайтах) или G (гигабайтах).
Команда du в действии:

- Заменяет: ручной перенос папок и файлов в нужное место.
- Почему лучше: быстрее и не требует много ручного труда.
Синтаксис mv очень прост – старый путь меняется на новый:
mv <old file path> <new file path>.
mv /Users/Yablykworld/Documents/file1 /Users/Yablykworld/Desktop/file1
Эта команда переносит file1 из папки Документы на Рабочий стол.
- Заменяет:⌘Cmd + I (показать информацию).
- Почему лучше: быстрее, умеет отображать информацию о нескольким файлах сразу и имеет богатую палитру настроек.
ls – невероятно мощная. команда для отображения того, что находится в ваших папках. Также она выдает информацию о том, кто имеет право видеть их, есть ли на вашем Mac скрытые файлы или папки, и многое другое.
Лучшие опции для ls:
-l – отображает права для каждого файла в папке, время последнего изменения, владельца файла и его (файла) название.
-a – показывает все файлы в папке, включая скрытые (отличный вариант для библиотеки пользователя, которая в macOS по умолчанию скрыта).
Вот как всё работает:
ls -la /System/Library

mkdir
- Заменяет действие:Finder → Файл → Новая папка.
- Почему лучше: работает быстрее, и задать имя новой папочке можно сразу в командной строке (нет необходимости кликать два раза, как это имеет место быть в графическом интерфейсе).
Создает новые папки в мгновение ока.
- Заменяет: процедуру отправки файлов в Корзину и её очистки;
- Почему лучше: быстрее, плюс удаляются даже те файлы, от которых обычно не получается избавиться с помощью Корзины.
Эта команда раз и навсегда удаляет абсолютно любой файл, который вы поместите в команду. Что, разумеется, требует повышенного внимания – в отличие от Корзины, rm не будет спрашивать «а Вы точно уверены?». Предполагается, что вы знаете, что делаете…
По умолчанию rm удаляет только файлы, папки остаются. Для того, чтобы сразу удалять и их, используйте опцию -R (рекурсивно).