Командная строка Linux - Шоттс Уильям
Таблица 4.1. Групповые символы
Групповой символ
Соответствует
*
Любая последовательность любых символов
?
Любой один символ
[символы]
Любой один символ из указанного множества символов
[!символы]
Любой один символ, не принадлежащий указанному множеству символов
[[:класс:]]
Любой один символ, принадлежащий указанному классу
В табл. 4.2 представлены наиболее часто используемые классы символов.
Таблица 4.2. Наиболее часто используемые классы символов
Класс символов
Соответствует
[:alnum:]
Любой алфавитно-цифровой символ
[:alpha:]
Любой алфавитный символ
[:digit:]
Любой цифровой символ
[:lower:]
Любая буква в нижнем регистре
[:upper:]
Любая буква в верхнем регистре
диапазоны символов
Если у вас уже есть опыт работы с другим Unix-подобным окружением или вам приходилось читать другие книги по этой теме, вы встречали форму записи диапазонов символов [A-Z] или [a-z]. Это традиционные для Unix формы записи, и они прекрасно работают в старых версиях Linux. Более того, они все еще работают в новых версиях, но будьте очень осторожны при их использовании, потому что они не всегда дают ожидаемый результат без правильной настройки. А вообще, старайтесь избегать их и использовать классы символов.
Групповые символы позволяют конструировать сложные критерии выбора имен файлов. В табл. 4.3 перечислены некоторые примеры шаблонов и их соответствия.
Таблица 4.3. Примеры использования групповых символов
Шаблон
Соответствует
*
Все имена файлов
g*
Все имена файлов, начинающиеся с символа «g»
b*.txt
Все имена файлов, начинающиеся с символа «b», за которым следует любое число других символов, и заканчивающиеся на «.txt»
Data???
Все имена файлов, начинающиеся с символов «Data», за которыми следуют ровно три любых символа
[abc]*
Все имена файлов, начинающиеся с символа «a», «b» или «c»
BACKUP.[0-9][0-9][0-9]
Все имена файлов, начинающиеся с символов «BACKUP.», за которыми следуют ровно три цифровых символа
[[:upper:]]*
Все имена файлов, начинающиеся с буквы в верхнем регистре
[![:digit:]]*
Все имена файлов, не начинающиеся с цифры
*[[:lower:]123]
Все имена файлов, заканчивающиеся буквой в нижнем регистре или цифрой «1», «2» или «3»
Групповые символы можно использовать с любыми командами, принимающими имена файлов в виде аргументов, но подробнее об этом мы поговорим в главе 7.
групповые символы также действуют в графическом интерфейсе
Групповые символы имеют особую ценность не только потому, что часто используются в командной строке, но и потому, что поддерживаются некоторыми диспетчерами с графическим интерфейсом.
• В Nautilus (диспетчер файлов для GNOME) можно выбирать файлы с помощью диалога Edit (Правка) —> Select Pattern (Выделить по шаблону). Просто введите шаблон для выбора файлов с групповыми символами, и в текущем каталоге будут выделены файлы, соответствующие шаблону.
• В некоторых версиях Dolphin и Konqueror (диспетчеры файлов для KDE) групповые символы можно вводить непосредственно в адресную строку. Например, если понадобится увидеть все файлы с именами, начинающимися с буквы «u» в нижнем регистре, в каталоге /usr/bin, просто введите в адресной строке текст: /usr/bin/u*, и вы получите желаемый результат.
Большинство идей, первоначально реализованных в интерфейсе командной строки, перекочевали и в графический интерфейс. Это одно из множества обстоятельств, которые делают настольный компьютер с Linux таким мощным инструментом.
mkdir — создание каталогов
Команда mkdir используется для создания каталогов. Вызывается она следующим образом:
mkdir каталог...
Примечание к форме записи: В этой книге три точки в описании команды, следующие за аргументом (как в примере выше), говорят о том, что аргументов может быть несколько; то есть в данном случае команда
mkdir dir1
создаст один каталог с именем dir1, а команда
mkdir dir1 dir2 dir3
создаст три каталога с именами dir1, dir2 и dir3.
cp — копирование файлов и каталогов
Команда cp копирует файлы и каталоги. Ее можно использовать двумя разными способами:
cp item1 item2
чтобы скопировать один файл или каталог item1 в файл или каталог item2, и
cp элемент... каталог
чтобы скопировать несколько элементов (файлов или каталогов) в указанный каталог.
В табл. 4.4 и 4.5 перечислены некоторые параметры (короткие и эквивалентные им длинные), наиболее часто используемые с командой cp.
Таблица 4.4. Параметры команды cp
Параметр
Значение
-a, --archive
Скопировать файлы и каталоги со всеми атрибутами, включая идентификаторы владельцев и права доступа. Без этого параметра копии обычно получают значения атрибутов по умолчанию, определенных для пользователя, выполняющего копирование
-i, --interactive
Запрашивать у пользователя подтверждение перед перезаписью существующего файла. Если этот параметр отсут-
ствует, команда cp просто перезапишет существующие файлы
-r, --recursive
Рекурсивно копировать каталоги и их содержимое. Это обязательный параметр (или параметр -a) при копировании каталогов
-u, --update
При копировании файлов из одного каталога в другой копировать только файлы, отсутствующие в каталоге назначения или более новые
-v, --verbose
Выводить информационные сообщения в процессе копиро-
вания
Таблица 4.5. Примеры использования команды cp
Команда
Результат
cp file1 file2
Скопирует file1 в file2. Если file2 существует, он будет затерт новым файлом file1. Если file2 отсутствует, он будет создан
cp -i file1 file2
То же, что и выше, но если файл file2 существует, у пользователя будет запрошено подтверждение перед перезаписью файла
cp file1 file2 dir1
Скопирует file1 и file2 в каталог dir1. Каталог dir1 должен существовать
cp dir1/* dir2
С использованием группового символа. Скопирует все файлы из каталога dir1 в каталог dir2. Каталог dir2 должен существовать
cp -r dir1 dir2
Скопирует каталог dir1 (и все его содержимое) в каталог dir2. Если каталог dir2 не существует, он будет создан и заполнен содержимым каталога dir1
mv — перемещение и переименование файлов
Команда mv выполняет операции перемещения и переименования файлов в зависимости от особенностей использования. В любом случае исходный файл исчезает после операции. Команда mv используется почти так же, как команда cp:
mv item1 item2
перемещает или переименовывает файл или каталог item1 в item2.
mv элемент... каталог
перемещает один или более элементов из одного каталога в другой.
Команда mv поддерживает множество тех же параметров, что и команда cp, как показано в табл. 4.6 и 4.7.
Таблица 4.6. Параметры команды mv
Параметр
Значение
-i, --interactive
Запрашивать у пользователя подтверждение перед перезаписью существующего файла. Если этот параметр отсутствует, команда mv просто перезапишет существующие файлы