Делай, что можешь, тем, что у тебя есть и там, где ты находишься (Теодор Рузвельт).

Как скопировать файлы с помощью команды ср в Linux

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 5,00 из 5)
Загрузка...
5 октября 2016
Как скопировать файлы с помощью команды ср в Linux

Просмотров: 360

Это руководство покажет вам, как копировать файлы и каталоги в вашей системе с помощью командной строки Linux.

Команда использующаяся для копирования файлов является ср. 

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

Синтаксис для копирования файла с одного места на другое выглядит следующим образом:

 

Например представьте, что вы имеете следующую структуру папок:

  • home
    • andreyex
      • documents
        • folder_one
          • file_one
          • file_two
          • file_three
        • folder_two
          • file4

Если вы хотите скопировать file_one из текущего местоположения в / home/ documents / folder_one в / home/ documents / folder_two, то вы должны ввести следующую команду в командной строке:

 

Есть некоторые ярлыки вы можете сделать здесь.

/ Главная часть может быть заменена на тильду (~), что объясняется в этой статье. Это изменяет команду на эту

 

Вы можете просто опустить имя файла для цели, если вы собираетесь использовать то же имя файла

 

Если вы уже в целевой папке вы можете просто заменить путь к цели с полной остановкой.

 

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

 

Как сделать резервную копию перед копированием файлов в Linux

В предыдущем разделе folder_one содержит файл с именем file_one и folder_two не делает. Представьте себе, что folder_two имеет файл с именем file_one и вы запустили следующую команду:

 

Приведенная выше команда будет перезаписывать file_one, который в настоящее время находится в folder_two. Там нет подсказок, нет предупреждения и сообщения об ошибках, потому что, вы указали действительную команду.

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

 

Например:

 

В папке назначения теперь будет файл, который был скопирован и там будет также файл с тильдой (~) в конце, которая является резервной копией оригинального файла.

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

 

Имя файла для резервных копий будет вдоль меняться 1.~1~, file_one.~2~ и т.д.

Как запросить перед перезаписью файлов при копировании в Linux

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

Для этого используйте следующий синтаксис:

 

Например:

 

Сообщение будет выглядеть следующим образом :  cp: overwrite ‘./file1’?

Для перезаписи файла нажмите Y на клавиатуре или для отмены нажмите N или CTRL и C одновременно.

Что происходит при копировании символьных ссылок в Linux

Символическая ссылка немного походит на ярлык на рабочем столе. Содержимое символической ссылки является адрес физического файла.

Представьте себе, вы имеете следующую структуру папок:

  • home
    • andreyex
      • documents
        • folder_one
          • file_one
        • folder_two
          • file_one (symbolic links points to folder_one/file_one)
        • folder3

Посмотрите на следующую команду:

 

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

Что происходит, однако, если скопировать символическую ссылку из folder_two в folder3?

 

Файл, который копируется в folder3 не будет символической ссылкой. Это на самом деле файл, на который указывает символическая ссылка, так на самом деле вы получите тот же результат, как если бы путем копирования file_one из folder_one.

Кстати вы можете получить тот же результат с помощью следующей команды:

 

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

 

Если вы хотите скопировать символическую ссылку необходимо указать следующую команду:

 

Чтобы символическую ссылку скопировать, а не физический файл с помощью следующей команды:

 

Как создавать жесткие ссылки с помощью команды ср

В чем разница между символической ссылкой и жесткой связи?

Символическая ссылка – это ярлык для физического файла. Он не содержит больше, чем адрес на физический файл.

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

Это руководство расскажет вам все, что вам нужно знать о жестких ссылках .

Вы можете создать жесткую ссылку с помощью команды ср.

 

В качестве примера того, почему вы могли бы использовать жесткую ссылку учесть, что у вас есть папка под названием видео и в этой папке видео у вас есть действительно большой видео файл с именем honeymoon_video.mp4. Теперь представьте, что вы также хотите, чтобы видео быть известным как barbados_video.mp4, потому что он также имеет кадры Барбадоса.

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

Вы могли бы вместо того, чтобы создать символическую ссылку с именем barbados_video.mp4, которая указывает на файл honeymoon_video.mp4. Это будет работать хорошо, но если кто-то удалил honeymoon_video.mp4 вы остались бы со ссылкой и ничего другого и связь по-прежнему занимает дисковое пространство.

Единственное отличие состоит в том, что они содержат разное количество индексных дескрипторов. (уникальные идентификаторы). Удаление файла honeymoon_video.mp4 не удаляет файл, но только снижает количество для этого файла на 1. Файл будет удален только если все ссылки на этот файл будут удалены.

Чтобы создать ссылку вы могли бы сделать что-то вроде этого:

 

Как создать символические ссылки с помощью команды ср

Если вы хотите создать символическую ссылку вместо жесткой ссылки вы можете использовать следующую команду:

 

Опять же я бы лично вообще используют команду ln -s, но вместо этого работает хорошо.

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

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

 

Стоит отметить, что если файл не существует на целевой стороне, то копия будет иметь место.

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

Вы можете предоставить более одного исходного файла внутри команды копирования следующим образом:

 

Приведенная выше команда будет копировать file_one, file_two и file_three в целевую папку.

Если файлы соответствуют определенному шаблону, то вы можете также использовать групповые символы следующим образом:

 

Приведенная выше команда будет копировать все файлы с расширением .mp3 в папку music2.

Как скопировать папки

Копирование папок такое же, как копирование файлов.

Например представьте, что вы имеете следующую структуру папок:

  • home
    • andreyex
      • documents
        • folder_one
          • file_one
          • file_two
        • folder_two

Представьте, что вы хотите переместить папку folder_one в папку folder_two следующим образом:

  • home
    • andreyex
      • documents
        • folder_two
          • folder_one
            • file_one
            • file_two

Вы можете использовать следующую команду:

 

Кроме того, можно использовать следующую команду:

 

Это копирует содержимое folder_one, а также любые суб-каталоги и файлы в пределах подкаталогов.

Резюме

Это руководство дало вам инструменты требующиеся для копирования файлов в Linux. Для всего остального вы можете использовать команду Linux man.

Как скопировать файлы с помощью команды ср в Linux

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

ПОИГРАЙ, РАССЛАБЬСЯ

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close