Ответ
 
LinkBack Опции темы
Старый 24.04.2012, 02:40      #1 (ссылка на пост)
levinkv
Активный пользователь
 
Аватар для levinkv
 
Регистрация: 23.01.2012
Сообщений: 54
levinkv скоро придёт к известности
Информация

По умолчанию Команда mv в Linux - часть 1

Всем привет!

В этой статье речь пойдет о команде mv в Linux. Команда mv – перемещает, переименовывает файлы. Самое простое описание команды mv звучит так: эта команда перемещает файл из одной позиции файловой системы в другую.

Перемещение файлов

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

Давайте для примера переместим файл img_01.jpg в каталог new_img, как показано ниже:

Код:
$ ls -l
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_01.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_02.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_03.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_04.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_05.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_06.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_07.jpg
drwxr-xr-x 2 hub-lex hub-lex 4096 Апр 15 08:17 new_img

$ mv img_01.jpg new_img/

$ ls -l
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_02.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_03.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_04.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_05.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_06.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_07.jpg
drwxr-xr-x 2 hub-lex hub-lex 4096 Апр 15 08:21 new_img

$ ls -l new_img/
-rw-r--r-- 1 hub-lex hub-lex 0 Апр 15 08:16 img_01.jpg

Для того чтобы гарантировать, что new_img – это каталог, желательно указать после него косую черту, как показано в примере. Если окажется, что new_img – не каталог, команда не переместит файл. Так можно предотвратить запись одного файла поверх другого.

Для справки: многие опции команд cp и mv совпадают и производят одинаковые действия. Например опция -i запрашивает подтверждение на выполнение, а если указана опция -v, то при копировании и перемещении выводятся подробные действия о выполненных действиях.

Переименование файлов и каталогов

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

Код:
$ ls -l
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_02.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_03.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_04.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_05.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_06.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_07.jpg
drwxr-xr-x 2 hub-lex hub-lex 4096 Апр 15 08:21 new_img

$ mv new_img/ new_IMG_DIR

$ ls -l
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_02.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_03.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_04.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_05.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_06.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_07.jpg
drwxr-xr-x 2 hub-lex hub-lex 4096 Апр 15 08:21 new_IMG_DIR

Копируя каталог с помощью команды cp, необходимо указывать опцию -R (или –recursive). С командой mv дело обстоит по другому. Как можно заметить из вывода выше, она, будучи вызвана без дополнительных опций, успешно перемещает или переименовывает каталоги.

Для справки: команда mv имеет одну важную особенность, которую начинающие пользователи часто упускают из виду. Если вы перемешаете ссылку, указывающую на каталог, вам надо внимательно следить за вводимыми данными. Предположим, что в вашем рабочем каталоге есть ссылка hello, которая указывает на каталог /home/hub-lex/testing/hello, и вы хотите переместить эту ссылку в каталог /home/hub-lex/new_dir. Приведенная ниже команда перемещает только саму ссылку: $ mv hello ~/new_dir. Следующая команда перемещает каталог, на который указывает эта ссылка: $ mv hello/ ~/new_dir. Различие между ними только в косой черте “/“, которая вводится после ссылки. Если символ “/” отсутствует, перемещается лишь сама ссылка. Включив этот символ, вы переместите каталог, а не ссылку. Будьте внимательны!

Удаление файлов

Команда rm (в ней нашли место только для две буквы из слова “remove”) безвозвратно удаляет файлы. В системе Linux нет “мусорной корзины”. Одно неосторожное движение – и вернуть файлы будет проблематично. О восстановлении файлов в системе Linux вы можете ознакомиться в статье “Файлы-призраки: как криминалисты восстанавливают надежно удаленные данные?“.

Команда rm проста в использовании, можно даже сказать, слишком проста. Давайте для примера удалим файл img_07.jpg и текущего каталога:

Код:
$ pwd
/home/hub-lex/Testing/command_mv_test

$ ls -l
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_02.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_03.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_04.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_05.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_06.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_07.jpg
drwxr-xr-x 2 hub-lex hub-lex 4096 Апр 15 08:21 new_IMG_DIR

$ rm img_07.jpg 

$ ls -l
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_02.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_03.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_04.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_05.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_06.jpg
drwxr-xr-x 2 hub-lex hub-lex 4096 Апр 15 08:21 new_IMG_DIR

Удаление нескольких файлов с помощью символов групповых операций

Символы групповых операций, например *, позволяют одним нажатием клавиши удалить несколько файлов, как показано ниже:

Код:
$ pwd
/home/hub-lex/Testing/command_mv_test

$ ls -l
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_02_old.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_03_old.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_04_old.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_05.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_06.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_08.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_09.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_10.jpg
drwxr-xr-x 2 hub-lex hub-lex 4096 Апр 15 08:21 new_IMG_DIR

$ rm *_old.jpg

$ ls -l
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_05.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_06.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_08.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_09.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_10.jpg
drwxr-xr-x 2 hub-lex hub-lex 4096 Апр 15 08:21 new_IMG_DIR

Для справки: будьте предельно внимательны, удаляя файлы с указанием символов групповых операций, потому что вы можете удалить гораздо больше, чем собирались. Классический пример – ввод вместо rm *txt команды mv * txt. Вместо текстовых файлов будут удалены все файлы, а затем команда rm предпримет попытку удалить файл txt.

Вывод подробной информации при удалении файлов

Если вам нужно получать сведения о всех действиях, выполняемых командой rm, тогда используйте опцию -v (–verbose):

Код:
$ pwd
/home/hub-lex/Testing/command_mv_test

$ ls -l
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:37 img_01_old.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:37 img_02_old.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:37 img_03_old.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_05.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_06.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_08.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_09.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_10.jpg
drwxr-xr-x 2 hub-lex hub-lex 4096 Апр 15 08:21 new_IMG_DIR

$ rm -v *_old.jpg
удалён «img_01_old.jpg»
удалён «img_02_old.jpg»
удалён «img_03_old.jpg»

$ ls -l
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_05.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_06.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_08.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_09.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_10.jpg
drwxr-xr-x 2 hub-lex hub-lex 4096 Апр 15 08:21 new_IMG_DIR

Как предотвратить удаление важных файлов

Опция -i (или –interactive) делает команду rm более безопасной. В этом случае команда запрашивает у пользователя подтверждение на удаление каждого файла. Эта опция не заменима при работе с правами root! Так что учитесь вводить команды правильно!

Код:
$ pwd
/home/hub-lex/Testing/command_mv_test

$ ls -l
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:39 img_01_old.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:39 img_02_old.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:39 img_03_old.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_05.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_06.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_08.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_09.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_10.jpg
drwxr-xr-x 2 hub-lex hub-lex 4096 Апр 15 08:21 new_IMG_DIR

$ rm -i *_old.jpg
rm: удалить пустой обычный файл «img_01_old.jpg»? y
rm: удалить пустой обычный файл «img_02_old.jpg»? n
rm: удалить пустой обычный файл «img_03_old.jpg»? y

$ ls -l
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:39 img_02_old.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_05.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 08:16 img_06.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_08.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_09.jpg
-rw-r--r-- 1 hub-lex hub-lex    0 Апр 15 18:33 img_10.jpg
drwxr-xr-x 2 hub-lex hub-lex 4096 Апр 15 08:21 new_IMG_DIR

Ответ y на запрос команды означает согласие на удаление файла, а ответ n – приказ сохранить файл, т.е. ничего с ним не делать (пропустить). Получив ответ n, команды rm не прекращает работу, а переходит к обработке следующего файла.

На сегодня это все.
levinkv вне форума   Ответить с цитированием
Ответ

Социальные закладки

Метки
rm linux, rmdir linux, команда rm, команда rm linux, команда rmdir, команда rmdir linux


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks Вкл.
Pingbacks Вкл.
Refbacks Вкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Команда mkdir в Linux levinkv Linuxoid 0 24.04.2012 02:23
Команда touch в Linux levinkv Linuxoid 0 24.04.2012 02:19
Архивация в Linux – команда tar levinkv Linuxoid 0 29.02.2012 00:48
Архивация в Linux – команда zip levinkv Linuxoid 0 29.02.2012 00:45


Реламный блок
 

Текущее время: 23:17. Часовой пояс GMT +6.


Rambler's Top100 Счётчик тиц

vBulletin Skin by MiraMaX166
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Время генерации страницы 0.10965 секунды с 18 запросами