= Практикум №3 =

== Инструкция по команде mv ==

С помощью команды '''mv''' можно:

- переместить файл(ы) и/или папку(и) в другую папку;

- переименовать файл или папку;

- перезаписать файл.

В общем случае команда принимает два и более аргументов, разделённых пробелами. Последний из аргументов распознаётся как НАЗНАЧЕНИЕ, остальные - как ИСТОЧНИКи. В качестве аргументов можно передавать абсолютные или относительные имена файлов и папок.

'''mv''' ИСТОЧНИК НАЗНАЧЕНИЕ

'''mv''' ИСТОЧНИК1 ИСТОЧНИК2 ... НАЗНАЧЕНИЕ

Чтобы переместить файлы ФАЙЛ1, ФАЙЛ2 и т.д. в ПАПКА, названия файлов указываются через пробел как ИСТОЧНИКи, ПАПКА - как НАЗНАЧЕНИЕ.

Чтобы переместить ПАПКА1, ПАПКА2 и т.д. в ПАПКАN, нужно указать ПАПКА1, ПАПКА2, ... через пробел как ИСТОЧНИКи, а ПАПКАN - как НАЗНАЧЕНИЕ. При этом переместятся именно папки с их содержимым, а не просто содержимое.

При перемещении можно указывать ИСТОЧНИКи разного рода (папки и файлы) внутри одной команды. 

Если нужно переименовать ИСТОЧНИК, в НАЗНАЧЕНИЕ нужно указать новое имя. Новое имя не должно указывать на уже существующие файл или папку.

Если запустить команду на двух существующих файлах ФАЙЛ1 и ФАЙЛ2, указав ФАЙЛ1 как ИСТОЧНИК, а ФАЙЛ2 - как НАЗНАЧЕНИЕ, получится один файл с содержимым ФАЙЛ1 и названием ФАЙЛ2, при этом содержимое исходного ФАЙЛ2 будет утрачено. Результат выполнения такой команды аналогичен удалению исходного ФАЙЛ2 и последующему переименованию ФАЙЛ1 в ФАЙЛ2.

=== Опции: ===

'''-u, --update'''

Переместить, только если ИСТОЧНИК новее, чем НАЗНАЧЕНИЕ, или если НАЗНАЧЕНИЕ не существует

'''-t ПАПКА, --target-directory=ПАПКА'''

Переместить все ИСТОЧНИКи в НАЗНАЧЕНИЕ, указанное в аргументе опции (теперь на последнем месте всей команды будет (будут) ИСТОЧНИК(и), а не НАЗНАЧЕНИЕ)

'''-v, --verbose'''
 
Отобразить в окне терминала, что было только что выполнено

Обязательные аргументы длинных опций являются также обязательными для коротких.

----------------------------------------------------------------------------------------------------------

''Примечание'': у меня получилась более развёрнутая инструкция, чем то, что сказано в DESCRIPTION. Если опираться только на информацию оттуда, получится следующее:

'''ИМЯ'''

mv - переместить (переименовать) файлы

'''КРАТКИЙ ОБЗОР'''

'''mv''' [ОПЦИЯ]... [-T] ИСТОЧНИК НАЗН

'''mv''' [ОПЦИЯ]... ИСТОЧНИК... ПАПКА

'''mv''' [ОПЦИЯ]... -t ПАПКА ИСТОЧНИК...

'''ОПИСАНИЕ'''

Переименовать ИСТОЧНИК в НАЗН или переместить ИСТОЧНИК(и) в ПАПКА.

Обязательные аргументы длинных опций являются также обязательными для коротких.

'''-u, --update'''

переместить, только если файл ИСТОЧНИК новее, чем файл назначения, или если файл назначения не существует

'''-t, --target-directory=ПАПКА'''

переместить все ИСТОЧНИКи в ПАПКА

'''-v, --verbose'''
 
отобразить, что было только что выполнено

----------------------------------------------------------------------------------------------------------

== Таблица поведения команды mv ==

|| `mv arg1 arg2` || `arg1` файл || `arg1` папка || `arg1` не существует ||
|| `arg2` файл || Файл `arg1` переименовывается в `arg2`, содержимое исходного файла `arg2` утрачивается. || Ошибка || Ошибка ||
|| `arg2` папка || Файл `arg1` перемещается в папку `arg2`. || Папка `arg1` перемещается в папку `arg2`. || Ошибка ||
|| `arg2` не существует || Файл `arg1` переименовывается в `arg2`. || Папка `arg1` переименовывается в `arg2`. || Oшибка ||