Команды linux перенос файлов

Копирование, перемещение, создание и удаление файлов и каталогов

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

Копирование файлов и каталогов

В Bash для копирования файлов используется команда cp (от «copy»), которой обычно передаются два аргумента:

  1. адрес с именем исходного файла,
  2. новый адрес с именем или просто адрес каталога, куда помещается копия.

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

В данном случае создается копия файла readme , которая остается в той же директории под именем readme2 .

В папку Desktop копируется файл readme . Здесь текущим является родительский Desktop’у каталог. Имена копии и файла оригинала будут совпадать, а вот полные адреса – нет.

cp /home/irina/tux.png /mnt/D/pingvin.png

Здесь копируется файл из одного каталога в другой, используются абсолютные адреса, имя копии изменяется.

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

Чтобы скопировать каталог со всем его содержимым, необходимо использовать ключ -r команды cp :

Перемещение и переименование

В Bash-оболочке Linux для перемещения и переименования используется одна и та же команда – mv (от «move» – перемещать). Переименование можно рассматривать как частный случай перемещения, ведь по-сути изменяется полный адрес файла, что равносильно перемещению, даже если файл остается в том же каталоге.

Читайте также:  Gpt при установке linux

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

В случае перемещения без переименования во втором аргументе указывается только каталог места назначения.

mv document.txt Work/doc23.txt

Здесь в первом случае файл document.txt перемещается в каталог Work . Во-втором случае одновременно происходит перемещение файла и его переименование: document.txt перемещается в директорию Work и получает новое имя doc23.txt .

При использовании команды mv для переименования в качестве второго аргумента указывается новое имя:

mv Work/list.odt Work/names.odt

Каталоги перемещаются и переименовываются по тому же принципу, что и файлы (в отличие от cp ключ -r здесь не нужен).

Групповое перемещение файлов работает также, как с командой cp : сначала указываются перемещаемые объекты, в конце каталог назначения.

Создание файлов и каталогов

Новые директории создаются командой mkdir. Например, чтобы создать каталог Work в текущей директории необходимо выполнить следующую команду:

mkdir Work
или
mkdir ./Work

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

Здесь программа cal выводит календарь на текущий месяц, а поскольку стоит знак перенаправления вывода, то вывод команды будет записан в файл January , находящийся в папке Work .

Удаление файлов и каталогов

Для удаления файлов используется команда rm. Например:

Командой rmdir можно удалить пустой каталог. Если же каталог не пуст, следует использовать команду rm с ключом -r :

Удаление непустого каталога: rm -r

У вас в каталоге есть файлы с разными расширениями. Вам надо группу файлов, имеющих одно и тоже расширение, скопировать в другой каталог. Как это сделать одной командой?

Читайте также:  Монтирование удаленной папки linux

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

Курс с ответами к заданиям и дополнительными уроками в PDF

Введение в Linux и Bash. Курс

Источник

Команда mv

Команда mv Linux

Команда mv используется для перемещения одного или нескольких файлов (или директорий) в другую директорию, а также для переименования файлов и директорий.

Синтаксис

исходные_файлы — это то, что мы будем перемещать или переименовывать. То есть это либо один файл, либо несколько файлов, либо директория, либо несколько директорий.

куда — это название директории, в которую мы перемещаем исходные файлы или директории. Или же это новое название файла или директории, если выполняется переименование. То есть это либо директория, либо новое название файла или директории.

  • Переместить один или несколько файлов в другую директорию.
  • Переместить одну или несколько директорий в другую директорию.
  • Переименовать файл.
  • Переименовать директорию.

Опции

Создать резервную копию существующих файлов, которые будут перезаписаны или удалены.
Имя для резервной копии может создаваться по определенным правилам. Для этого используется опция —backup=МЕТОД В качестве значения МЕТОД можно указать:

  • none или off — не делать резервных копий, даже если включена опция —backup
  • numbered или t — имя резервной копии получит числовой индекс (пример: myfile.txt~2~ ).
  • existing или nil — если в директории уже есть резервные копии с числовыми индексами, то использовать числовые индексы для новых резервных копий, во всех остальных случаях использовать метод simple .
  • simple или never — делать обычные резервные копии (пример: myfile.txt~ ).

Изменить символ суффикса, который добавляется к именам резервных копий (при использовании опции —backup ). По умолчанию СУФФИКС равен значку тильды ~

Перемещать только если исходный файл новее, чем файл назначения или если файл-назначения отсутствует.

Примеры использования команды mv

Рассмотрим несколько примеров использования команды mv в Linux.

Рекомендуется всегда использовать опцию -v , чтобы получать информацию о том, что именно команда mv делает с файлами.

Также крайне рекомендуется использовать опцию -i , чтобы выдавался запрос на перезапись существующих файлов. В примерах ниже мы эти опции опускаем.

Переместить файл

Переместим файл myfile1.txt в директорию mydir/ (директория должна существовать). Для этого выполняем команду без каких-либо аргументов:

Читайте также:  Linux посмотреть все разделы

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

Переименуем файл myfile1.txt в myfile2.txt :

Переименовать директорию

Переименуем директорию mydir1 в mydir2 . Выполняется точно также, как и переименование файлов.

Создавать резервные копии существующих файлов

Предположим, что нам нужно переименовать файл myfile1.txt в myfile2.txt , но файл myfile2.txt уже существует. Можно воспользоваться опцией -b , чтобы создать резервную копию существующего файла:

mv -b myfile1.txt myfile2.txt

В результате сначала существующий файл myfile2.txt будет переименован в myfile2.txt~ , то есть будет создана его резервная копия, и только потом файл myfile1.txt будет переименован в myfile2.txt .

Вместо значка тильда ~ можно добавлять к именам резервных копий произвольный суффикс. Например, добавим суффикс .bak . Для этого воспользуемся опцией -S

mv -b -S ".bak" myfile1.txt myfile2.txt

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

Рассмотрим примеры использования команды mv для перемещения нескольких файлов в другую директорию.

Переместим сразу три файла в директорию mydir/

mv myfile1 myfile2 myfile3 mydir/

Переместим все файлы из текущей директории в директорию mydir/

Переместим все файлы с расширением .jpg в директорию mydir/

Переместить только те файлы, которых нет в директории назначения

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

Переместить только те файлы, которые новее

Предположим, что нам нужно переместить все файлы из одной директории в другую, но если в другой директории уже есть файлы с такими же именами, то заменять существующие файлы только если исходный файл новее (по дате). Для этого используем опцию -u

Если в имени файла есть пробелы

Если в имени файла есть пробелы, то имя файла нужно заключить в кавычки или перед каждым пробелом добавлять символ \

Предположим, что нам нужно переименовать файл в имени которого содержится пробел — My file1.txt . Для этого можно заключить имя файла в кавычки (для файла назначения аналогично).

mv "My file1.txt" "My file2.txt"

Или использовать символ косой черты перед пробелом.

mv My\ file1.txt My\ file2.txt

Источник

Оцените статью
Adblock
detector