здесь, очевидно, первый параметр - имя файла, который Вы перемещаете, а второй - имя существующего каталога, в который Вы перемещаете.
Выведите на экран список файлов и подкаталогов Вашего личного каталога и подкаталога secnew с помощью командной строки:
cd; ls -a . secnew
Заметьте, что файл .profile существует в Вашем личном каталоге, а в подкаталоге secnew такого файла нет. Команда
mv .profile secnew
переместит файл .profile в каталог secnew. А команда
ls -a . secnew
подтвердит выполнение команды mv.
Чтобы вернуть файл .profile в Ваш личный каталог, следует воспользоваться командой
mv secnew/.profile .
Увидеть результат позволит все та же команда
ls -a . secnew
С помощью команды mv можно переместить и несколько файлов, но опять же лишь в существующий каталог. Давайте переместим файлы hel и vrem из подкаталога secnew в Ваш личный каталог, для чего используем команду
mv secnew/hel secnew/vrem .
и проверим, что файлы перемещены
ls -a . secnew
Обратите внимание, что, если до перемещения файлов, в каталоге существуют файлы, имена которых совпадают с именами перемещаемых файлов, то после перемещения такие файлы будут уничтожены, и команда mv не предупредит Вас об этом.
Чтобы убедиться в вышесказанном введите следующие команды:
cd secnew; echo hi>hel
Вы создали файл hel в каталоге secnew.
ls . newcat; cat hel; cat newcat/hel
Вы вывели на экран списки файлов и подкаталогов каталогов secnew и newcat, а также содержимое файла hel каталога secnew и файла hel каталога newcat.
mv hel newcat; cat newcat/hel
Вы переместили файл hel из каталога secnew в каталог newcat и вывели на экран содержимое файла hel каталога newcat.
1. Перемещение каталогов.
Команда mv позволяет также перемещать каталоги со всеми их файлами и подкаталогами. В этом случае вместо имени перемещаемого файла указывается имя каталога. Для перемещения подкаталога newcat в подкаталог secnew используйте команду
mv newcat secnew
Чтобы увидеть результат, лучше воспользоваться следующей командой:
ls -aF secnew .
2. Использование шаблонов.
Для перемещения файлов разрешается использовать шаблоны. Попробуйте переместить все файлы подкаталога secnew в новый каталог. Сначала создайте каталог ctmv - в него Вы переместите файлы и проверьте, что каталог создан:
cd; mkdir ctmv; ls -F . secnew ctmv
А затем воспользуйтесь шаблоном *:
mv secnew/* ctmv
Команда
ls -F secnew ctmv
позволит увидеть изменения, произошедшие в каталогах secnew и ctmv.
3. Переименование файлов.
В формате MS Word 97
1. Работа с shell.
Интерпретатор shell - это наиболее важная программа для пользователей UNIX, быть может, за исключением текстового редактора. Она исполняет запросы на запуск программ и предоставляет дополнительные возможности использования имеющихся команд и даже написания собственных. С некоторыми свойствами shell Вы уже знакомы. Одно из них способность ссылаться сразу более чем на один файл, используя для этого специальные символы - шаблоны; другое - задание списка каталогов, в которых производится поиск команд для запуска по неполному имени, третье - возможность использования нескольких команд в одной командной строке. Сейчас Вы познакомитесь и с некоторыми другими возможностями интерпретатора shell.
1. Стандартный вход и стандартный выход.
Многие команды UNIX получают информацию с так называемого стандартного входа и посылают информацию на опять же так называемый стандартный выход. (Для них часто используются сокращения "stdin" и "stdout" соответственно). shell организует дело так, что стандартным входом служит клавиатура, а стандартным выходом - экран.
Рассмотрим, к примеру, использование команды cat. В случае, когда в качестве параметров заданы имена файлов, cat читает данные из файлов, имена которых определены в командной строке и посылает эти данные прямо на stdout. Поэтому при выполнении команды
cat .profile .kermrc
на экран будет выведено содержимое файла .profile, а следом за ним содержимое файла .kermrc.
Но если команде cat не заданы имена файлов в качестве параметров, то она читает данные со стандартного входа (клавиатуры) и посылает их на стандартный выход (экран). Вот пример. Введите команду
cat -u
Затем напечатайте
Hello there.
На экране появится
Hello there.
Напечатайте
Bye.
Вы получите ответ:
Bye.
Как видите, каждая строка, которую Вы напечатали, немедленно выдается командой cat на экран. При вводе со стандартного входа команда считает, что ввод закончен тогда, когда Вы нажимаете клавиши CTRL-d. Эта комбинация клавиш посылает команде сигнал EOT (End-Of-Text - конец текста). Поэтому нажмите CTRL-d (должно появиться новое приглашение на ввод $) и давайте рассмотрим другой пример.
Воспользуемся новой для Вас командой sort. Это команда сортировки. Без указания аргументов она сортирует информацию, поступающую со стандартного входа, упорядочивая строки в лексикографическом порядке, и выдает результат на стандартный выход - экран.
Попробуйте так:
введите команду
sort
напечатайте с клавиатуры следующее (для перехода на новую строку используйте ENTER):
bananas
carrots
apples
Нажмите CTRL-d и Вы увидите измененный список.
apples
bananas
carrots
В конце появится новое приглашение на ввод команд $.
2. Перенаправление входа и выхода.
Теперь, предположим, что Вы хотите послать результат сортировки в файл, чтобы сохранить список планируемых покупок. shell дает возможность перенаправлять стандартный выход в файл, используя символ ">". Вот как это работает:
напечатайте команду sort и после символа > укажите имя файла, в который хотите сохранить результат выполнения команды (эта процедура должна быть Вам знакома - Вы уже создавали файлы подобным образом)
sort > shopping-list
Затем введите с клавиатуры список предполагаемых покупок (он попадет во входной поток команды, ведь по умолчанию входной поток - клавиатура):
bananas
carrots
apples
Снова нажмите CTRL-d.
Как Вы можете видеть, результат работы команды sort не отображается на экране (после нажатия клавиш CTRL-d сразу появляется новое приглашение), вместо этого он сохраняется в файле shopping-list (список покупок). Давайте проверим, действительно ли это так с помощью давно знакомой Вам команды cat:
cat shopping-list
Если Вы все сделали правильно, то содержимое файла shopping-list будет выглядеть следующим образом:
apples
bananas
carrots
Другой вариант - у Вас сохранен не отсортированный список в некотором файле. Один из способов его сортировки и сохранения такой - отсортировать файл с данным именем вместо получения содержимого файла со стандартного входа и перенаправить стандартный выход в файл.
Создайте файл pokupki, с помощью команды echo и перенаправления выходного потока:
echo " carrots
bananas
apples "> pokupki
для перевода строки используйте клавишу ENTER. ENTER не будет восприниматься как сигнал завершения ввода команды до тех пор, пока Вы не закроете кавычки. В начале каждой строки будет появляться повторное приглашение на ввод ">".
После того как Вы создали файл, отсортируйте его и сохраните указанным выше способом:
sort pokupki > shopping-list
С помощью команды cat проверьте выполнение введенной команды:
cat shopping-list
Результат должен быть аналогичным предыдущему:
apples
bananas
carrots
То же самое можно сделать и по-другому. Перенаправлен может быть не только стандартный выход, но также и стандартный вход. Для этого следует использовать символ "<". Введите, например, такую командную строку:
sort < pokupki
Команда sort выведет на экран (стандартный выход) отсортированные строки файла pokupki:
apples
bananas
carrots
Фактически sort<pokupki эквивалентно sort pokupki, но последний вариант позволяет продемонстрировать сказанное: sort<pokupki ведет себя так, словно читает данные файла pokupki со стандартного входа - клавиатуры (а не из заданного файла), в то время как на самом деле shell перенаправил данные файла в стандартный входной поток.
Таким образом, с помощью перенаправления стандартные вход и выход могут быть переведены в файлы.
3. Использование конвейера.
Предыдущие примеры предполагали, что Вы ввели данные с клавиатуры своими собственными руками или извлекли их из файла. А что, если данные, которые Вы хотите отсортировать, являются выходными данными другой программы, например, такой как ls?
Попробуйте получить список файлов и подкаталогов Вашего личного каталога, отсортированный в порядке обратном к лексикографическому. Для подобной сортировки у команды sort существует опция -r. Но ее одной недостаточно - нужно использовать и возможности shell. Можно применить уже полученные Вами знания:
ls > file-list
Эта командная строка перенаправила выходной поток команды ls в файл file-list. При желании Вы можете убедиться в этом с помощью команд cat или more.
Вторая команда сортирует содержимое файла file-list в указанном порядке и выводит его на экран:
sort -r file-list
Такой способ не самый быстрый и требует создания временного файла для сохранения результата работы команды ls.
shell предоставляет и другой вариант - использование "конвейера" (pipeline). "Конвейер" - это замечательное свойство shell, которое позволяет связать последовательность команд в конвейер, где stdout первой команды посылается прямо на stdin второй команды и так далее.
В нашем примере необходимо направить стандартный выходной поток команды ls в стандартный входной поток команды sort. Символ "|" обозначает конвейер. Поэтому Вам достаточно ввести: