14.2 Работа с файлами
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