14.2 Работа с файлами

We use cookies. Read the Privacy and Cookie Policy

14.2 Работа с файлами

Начну рассказ наверно с того, что в любой момент времени работы в терминале вы находитесь в некотором каталоге. При запуске терминала текущей директорией является домашний каталог пользователя, но потом вы конечно можете её поменять.

Узнать, в какой же папке вы сейчас находитесь, очень просто, достаточно посмотреть на приглашение терминала, то есть на те символы, которые печатаются автоматически в начале каждой строки:

Рис. 14.4: Текущий каталог в терминале.

Рис. 14.4: Текущий каталог в терминале.

Текущий каталог — это то, что между символами: и $. Кстати, обратите внимание, перед: стоит имя пользователя и имя компьютера, разделённые символом @. Но когда вы запускаете терминал, то между: и $ стоит символ ?:

Рис. 14.5: Обозначение домашнего каталога в путях.

Рис. 14.5: Обозначение домашнего каталога в путях.

Я говорил, что при запуске терминала текущим каталогом становится домашняя папка пользователя, так вот, символ ? — это синоним адреса домашней папки текущего пользователя[51]. Кстати, если вы ещё не знаете, полный адрес домашнего каталога выглядит как /home/логин_пользователя. У меня это /home/malamut.

Хорошо, как выяснить текущее местоположение, вроде разобрались, а как же его сменить? Для этого предназначена команда cd, выполните, например, команду

cd Музыка

Видите, текущее местоположение изменилось:

Рис. 14.6: Новое местоположение после выполнения команды cd.

Рис. 14.6: Новое местоположение после выполнения команды cd.

На всякий случай напоминаю, что имена файлов и каталогов в Linux чувствительны к регистру символов, то есть Музыка и музыка — эта два совершенно разных имени.

После команды cd можно указывать как полные пути относительно корня, так и относительные, отсчитывающиеся от текущего каталога. В примере выше я использовал относительный путь. А вот полный:

cd /etc/apt

Хочу сразу обратить внимание на несколько важных особенностей. Во-первых, при наборе путей также работает автодополнение по Tab, это очень удобно. Во-вторых, использовать различные небуквенные символы и пробелы напрямую при наборе путей нельзя. Например, для того, чтобы перейти в каталог, содержащий в имени символ пробела, надо при наборе пути к такому каталогу перед пробелом поставить символ обратного слеша . Вот так:

cd Каталог с плохими символами в имени<>

Установка обратного слеша перед некоторыми символами называется экранированием. Кстати, при использовании автодополнения все слеши расставляются автоматически. Кроме того, можно просто заключить путь в двойные кавычки:

cd "Каталог с плохими символами в имени<>"

Но в этом случае автодополнение работать не будет. Заменитель адреса домашнего каталога ? можно использовать и при наборе путей, например:

cd ?/Музыка

А для перемещения непосредственно в домашний каталог достаточно просто набрать cd без аргументов. Для перемещения на каталог выше можно использовать команду

cd ..

Вообще, две точки обозначают всегда родительский каталог, поэтому можно делать так:

cd ../..

Рис. 14.7: Пример применения команды cd.

Рис. 14.7: Пример применения команды cd.

В принципе, всё можно как угодно комбинировать, в разумных пределах, конечно. Ну и напоследок про cd. Переместиться в предыдущий посещённый каталог можно командой

cd -

В качестве наглядного примера использования cd небольшое путешествие по моему компьютеру (Рис. 14.7).

Как перемещаться по каталогам в первом приближении вроде разобрались, теперь же я расскажу про некоторые другие полезные операции. Посмотреть содержимое текущего каталога можно командой ls:

Рис. 14.8: Вывод содержимого текущего каталога.

Рис. 14.8: Вывод содержимого текущего каталога.

Обычно командам можно передавать различные модификаторы, например можно изменить способ вывода информации командой ls. Кстати, команда ls -l показывает различную дополнительную информацию о содержимом каталога:

Рис. 14.9: Расширенный вывод содержимого текущего каталога.

Рис. 14.9: Расширенный вывод содержимого текущего каталога.

Очень часто параметрами команд являются имена файлов или папок, именно для этого я так подробно рассказывал о способе перемещения по каталогам и использования различных имён файлов в качестве аргументов. Например, команда cat показывает содержимое текстового файла, и если вы хотите посмотреть содержимое файла test.txt, лежащего в вашем домашнем каталоге, то вы могли бы выполнить команду

cat ?/text.txt