Найти в Дзене

Как скопировать файл в linux через терминал

В Linux есть несколько команд для копирования файлов через терминал. Наиболее часто используемая команда – cp (copy). 1. Команда cp (copy): · cp [опции] <источник> <назначение> o cp file.txt Documents/ o cp file.txt Documents/new_file.txt o cp -r my_folder/ backup_folder/ или cp -R my_folder/ backup_folder/ o cp -a my_folder/ backup_folder/ o cp -i file.txt . (Точка . означает текущий каталог) o cp file1.txt file2.txt file3.txt Documents/ 2. Команда rsync (remote sync): · rsync [опции] <источник> <назначение> o rsync -av --progress my_folder/ backup_folder/ o rsync -av --delete my_folder/ backup_folder/ Внимание! Будьте очень осторожны с опцией --delete, т.к. она может случайно удалить важные файлы. 3. Использование графических файловых менеджеров через терминал (например, nautilus, thunar, dolphin): Важные моменты: Выбор команды для копирования зависит от ваших потребностей и предпочтений. Для простых задач достаточно команды cp. Для более сложных задач, таких как синхронизация файлов

В Linux есть несколько команд для копирования файлов через терминал. Наиболее часто используемая команда – cp (copy).

1. Команда cp (copy):

  • Синтаксис:

· cp [опции] <источник> <назначение>

  • <источник>: Путь к файлу или каталогу, который нужно скопировать.
  • <назначение>: Путь к месту, куда нужно скопировать файл или каталог. Если <назначение> - существующий каталог, то <источник> будет скопирован внутрь этого каталога. Если <назначение> - имя файла, то <источник> будет скопирован с этим именем.
  • Основные опции:
  • -r или -R (recursive): Копирует каталоги рекурсивно (включая все подкаталоги и файлы). Обязательна для копирования каталогов.
  • -i (interactive): Запрашивает подтверждение перед перезаписью существующего файла в <назначение>.
  • -f (force): Принудительно перезаписывает существующие файлы в <назначение> без запроса подтверждения. Используйте с осторожностью.
  • -u (update): Копирует только если файл <источник> новее, чем файл <назначение>, или если файла <назначение> не существует.
  • -v (verbose): Выводит подробную информацию о процессе копирования.
  • -p (preserve): Сохраняет оригинальные атрибуты файла (владелец, группа, права доступа, временные метки).
  • -a (archive): Эквивалентна -dR -p. Сохраняет все атрибуты файла, включая жесткие ссылки, и позволяет копировать каталоги рекурсивно.
  • Примеры:
  • Скопировать файл file.txt в каталог Documents:

o cp file.txt Documents/

  • Скопировать файл file.txt в каталог Documents и переименовать его в new_file.txt:

o cp file.txt Documents/new_file.txt

  • Скопировать каталог my_folder в каталог backup_folder рекурсивно (включая все подкаталоги и файлы):

o cp -r my_folder/ backup_folder/

или

cp -R my_folder/ backup_folder/

  • Скопировать каталог my_folder в каталог backup_folder рекурсивно, сохраняя все атрибуты файлов:

o cp -a my_folder/ backup_folder/

  • Скопировать файл file.txt в текущий каталог, запросив подтверждение перед перезаписью, если файл с таким именем уже существует:

o cp -i file.txt .

(Точка . означает текущий каталог)

  • Скопировать несколько файлов в один каталог:

o cp file1.txt file2.txt file3.txt Documents/

2. Команда rsync (remote sync):

  • Команда rsync более мощная и гибкая, чем cp. Она особенно полезна для синхронизации файлов и каталогов между двумя компьютерами по сети, но также может использоваться для локального копирования.
  • rsync копирует только измененные части файлов, что делает её более эффективной для больших файлов или каталогов, которые часто обновляются.
  • Синтаксис (для локального копирования):

· rsync [опции] <источник> <назначение>

  • Основные опции (для локального копирования):
  • -a (archive): Режим архивирования; эквивалентен -rlptgoD.
  • -v (verbose): Увеличивает уровень детализации вывода.
  • -z (compress): Сжимает данные при передаче (не имеет смысла при локальном копировании, но часто используется при копировании по сети).
  • --delete: Удаляет файлы в <назначение>, которых нет в <источник>. Используйте с осторожностью.
  • --progress: Показывает индикатор прогресса во время копирования.
  • Примеры:
  • Скопировать каталог my_folder в каталог backup_folder рекурсивно, сохраняя все атрибуты файлов и показывая прогресс:

o rsync -av --progress my_folder/ backup_folder/

  • Синхронизировать каталог my_folder с каталогом backup_folder, удаляя файлы в backup_folder, которых нет в my_folder:

o rsync -av --delete my_folder/ backup_folder/

Внимание! Будьте очень осторожны с опцией --delete, т.к. она может случайно удалить важные файлы.

3. Использование графических файловых менеджеров через терминал (например, nautilus, thunar, dolphin):

  • В некоторых дистрибутивах Linux можно использовать графические файловые менеджеры через терминал для копирования файлов. Например, в GNOME можно использовать команду nautilus для открытия файлового менеджера, а затем перетащить файлы из одного окна в другое. Этот способ удобен, если вы предпочитаете графический интерфейс, но работаете в терминале. Аналогично, можно использовать thunar (для XFCE) или dolphin (для KDE).

Важные моменты:

  • Пути к файлам и каталогам: Важно правильно указывать пути к файлам и каталогам. Используйте абсолютные пути (например, /home/user/Documents/file.txt) или относительные пути (например, file.txt для файла в текущем каталоге, ./file.txt тоже для файла в текущем каталоге, ../file.txt для файла в родительском каталоге).
  • Права доступа: Убедитесь, что у вас есть права на чтение файла <источник> и на запись в каталог <назначение>.
  • Перезапись файлов: По умолчанию команда cp перезаписывает существующие файлы без запроса подтверждения. Используйте опцию -i для запроса подтверждения перед перезаписью или будьте внимательны, чтобы не потерять важные данные.
  • Копирование каталогов: Для копирования каталогов необходимо использовать опцию -r или -R (рекурсивно).
  • Использование sudo: В некоторых случаях может потребоваться использовать команду sudo для копирования файлов, принадлежащих другим пользователям или требующих административных прав.

Выбор команды для копирования зависит от ваших потребностей и предпочтений. Для простых задач достаточно команды cp. Для более сложных задач, таких как синхронизация файлов или копирование больших объемов данных по сети, лучше использовать команду rsync.