Linux копировать файлы новее

Содержание
  1. Как скопировать файл в Linux через терминал
  2. Команда для копирования «cp»
  3. Синтаксис и опции команды «cp»
  4. Как копировать файлы и каталоги в Linux
  5. Копирование файлов с помощью команды cp
  6. Скопируйте файл в каталог
  7. Копировать несколько файлов
  8. Копирование каталогов с помощью команды cp
  9. Копирование файлов и каталогов с помощью команды rsync
  10. Выводы
  11. Команда cp
  12. Описание команды cp
  13. Синтаксис
  14. Опции
  15. Примеры использования команды cp
  16. Скопировать файл в другую директорию
  17. Скопировать несколько файлов
  18. Скопировать файл с подтверждением
  19. Показать информацию о копируемых файлах
  20. Скопировать директорию
  21. Скопировать только если файлы новее
  22. Не перезаписывать существующие файлы
  23. Скопировать только атрибуты
  24. Создать резервную копию для результирующих файлов, если они существуют
  25. Принудительно перезаписывать существующие файлы назначения
  26. Найти и скопировать один самый новый файл

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

При работе с Linux через терминал не редко приходится создавать копии файлов или копировать файлы из одной папки в другую. Например, это могут быть файлы конфигураций, которые используются для настройки программ, или просто документы пользователя. В данной инструкции мы расскажем, как скопировать файл в Linux через терминал и какие команды для этого потребуются. Статья будет актуальной для любого дистрибутива Linux, например, Ubuntu Linux или Debian

Команда для копирования «cp»

Для копирования файлов в Linux через терминал используется команда « cp » (от англ. «copy»). Команда « cp » представляет собой утилиту командной строки для копирования файлов и каталогов. Она поддерживает перемещение одного или нескольких файлов или папок с параметрами для создания резервных копий и сохранения атрибутов.

В общем случае, для того чтобы скопировать файл в Linux через терминал достаточно ввести команду « cp » и передать ей имя исходного и нового файла. Например, для того чтобы скопировать « file.txt » в новый « newfile.txt » нужно выполнить следующую команду:

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

Таким же образом выполняется копирование файла в другую папку. Вводим команду « cp », указываем путь к файлу и затем каталог, в который его нужно скопировать. Например, для того чтобы скопировать « file.txt » в каталог « folder » нужно выполнить вот такую команду:

Естественно, если это необходимо, вы можете вводить полные пути к файлам и папкам, которые копируете командой « cp ». Например, копирование может выглядеть так:

Еще один пример копирования с указанием полного пути:

При необходимости можно скопировать сразу несколько файлов. В этом случае сначала нужно перечислить файлы, а потом указать папку, в которую их нужно скопировать. Например, для того чтобы скопировать « file.txt » и « newfile.txt » в каталог « folder » нужно выполнить следующее:

Аналогичное действие можно выполнить и с помощью маски. Например, для того чтобы скопировать все txt -документы в определенную директорию можно выполнить вот такую команду:

При копировании каталогов нужно добавлять параметр « -R », так как без этого « cp » будет выдавать ошибку. Поэтому, для копирования каталогов нужно ввести команду « cp -R » и указать исходный и новый каталог. Например, для того чтобы скопировать каталог « folder » в « newfolder » вам нужно выполнить вот такую команду:

Читайте также:  Windows hacks and tricks

Как и в случае с файлами, папки можно копировать сразу по несколько штук. Для этого нужно ввести «cp», перечислить копируемые папки и указать каталог назначения. Например, для того чтобы скопировать папки « folder » и « folder2 » в « newbigfolder » нужно выполнить следующее:

Синтаксис и опции команды «cp»

Команда « cp » имеет множество опций, с помощью которых можно контролировать буквально все аспекты копирования файлов. Синтаксис команды выглядит следующим образом:

Самых опций у команды « cp » очень много, поэтому мы рассмотрим только самые простые и часто используемые. С остальными опциями вы сможете ознакомиться отдельно, выполнив в терминале Linux команду « man cp ».

Как уже было сказано, для выполнения команды копирования в терминале Linux сначала нужно ввести « cp », потом используемые опции, потом источник, и в конце место назначения. При этом опции из одной буквы можно соединять, например, вместо « -r -v » можно написать просто « -rv ».

Ниже мы рассмотрим несколько примеров копирования с опциями.

  • cp -r folder/ newfolder/
    Рекурсивное копирование каталогов.
  • cp -rv folder/ newfolder/
    Рекурсивное копирование с выводом подробной информации.
  • cp -ri folder/ newfolder/
    Рекурсивное копирование в интерактивном режиме с запросом на перезапись.
  • cp -rn folder/ newfolder/
    Рекурсивное копирование без перезаписи.
  • cp -ru folder/ newfolder/
    Рекурсивное копирование только новых файлов.

Источник

Как копировать файлы и каталоги в Linux

Копирование файлов и каталогов — одна из наиболее распространенных задач, которые вы будете выполнять при работе в командной строке. В Linux есть несколько команд для копирования файлов, наиболее широко используемые инструменты — cp и rsync .

Обычной практикой является использование команды cp для копирования файлов и rsync для копирования каталогов.

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

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

В операционных системах Linux и Unix команда cp используется для копирования файлов и каталогов.

Самый простой вариант использования — скопировать файл в текущий рабочий каталог. Например, чтобы скопировать файл с именем file.txt в файл с именем file_backup.txt в текущем каталоге , вы должны выполнить следующую команду:

Если целевой файл существует, он будет перезаписан. Чтобы получить запрос на подтверждение перед перезаписью файлов, используйте параметр -i .

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

Другой вариант, который может быть полезен, — это -v . При использовании этой опции команда печатает, что делается:

Скопируйте файл в каталог

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

В следующем примере мы file.txt файл file.txt в file.txt /backup :

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

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

Приведенная выше команда скопирует файл в указанный каталог как new_file.txt .

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

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

Читайте также:  Одноплатные компьютеры с поддержкой windows

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

Команда cp также позволяет использовать сопоставление с образцом. Например, чтобы скопировать все файлы .png из текущего каталога в каталог /backup , вы должны использовать:

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

Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R или -r . В следующем примере мы копируем каталог Pictures в Pictures_backup :

Приведенная выше команда создаст каталог назначения и рекурсивно скопирует все файлы и подкаталоги из источника в каталог назначения.

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

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

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

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

rsync включает множество параметров, которые контролируют каждый аспект его поведения.

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

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

Если целевой файл существует, rsync перезапишет его.

Эту же команду можно использовать для копирования каталога:

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

Чтобы узнать больше о rsync прочтите следующие статьи:

Выводы

Мы показали вам, как копировать файлы и каталоги в системах на базе Linux и Unix, используя утилиты cp и rsync .

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

Источник

Команда cp

Описание команды cp

Синтаксис

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

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

Опции

МЕТОД определяет, каким образом формируется имя резервной копии. МЕТОД может принимать значения:

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

).

  • existing или nil — если в директории уже есть резервные копии с числовыми индексами, то использовать числовые индексы для новых резервных копий, во всех остальных случаях использовать метод simple .
  • simple или never — делать обычные резервные копии (пример: myfile.txt

    Например, при использовании команды cp —parents a/b/myfile dstdir , файл myfile будет скопирован в директорию dstdir/a/b . То есть будут созданы промежуточные директории.

    КОГДА может принимать значения:
    always — всегда создавать «легкую» копию файла. Создается ссылка на исходные данные. Фактического копирования данных не происходит. Блоки данных копируются только тогда, когда они изменяются.
    auto — создается обычная полная копия.

    КОГДА может принимать значения:
    auto — (поведение по умолчанию) копировать разреженные файлы в разреженные файлы.
    always — результирующий файл всегда разреженный, если в исходном есть достаточное количество нулевых последовательностей.
    never — не делать результирующие файлы разреженными.

    Читайте также:  Как переключить пользователя linux

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

    Скопировать файл в другую директорию

    Скопируем файл myfile.txt в директорию mydir :

    Скопируем файл myfile1.txt в новый файл myfile2.txt

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

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

    Скопировать файл с подтверждением

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

    Показать информацию о копируемых файлах

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

    Скопировать директорию

    Чтобы скопировать директорию и все ее содержимое нужно использовать опцию -r

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

    Скопируем файлы вида myfile*.txt (например, это могут быть файлы myfile1.txt myfile10.txt myfile2.txt ) в директорию mydir , но если результирующий файл существует, то копирование выполняется только в том случае, если исходный файл новее.

    Не перезаписывать существующие файлы

    Чтобы существующие файлы не перезаписывались, используется опция -n

    Скопировать только атрибуты

    Скопируем только атрибуты файла. Содержимое файла не копируется.

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

    Скопируем файл myfile1.txt в файл myfile2.txt . Если файл myfile2.txt существует, то будет создана его резервная копия.

    Принудительно перезаписывать существующие файлы назначения

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

    Источник

    Найти и скопировать один самый новый файл

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

    Пока ничего умнее не придумал: find /место/искомого/файла -type f -cmin -10 | xargs cp -tpv /мой/каталог/

    Но эт нифига не то что хотелось бы. Гуглил, не помогло особо.

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

    На уроки ходи, неуч!

    Если на коленке и без каталогов, то ls -t|head -n 1 покажет самый новый файл.

    Ох уже эти советчики со звездами.

    ТС, НИКОГДА не используй ls, если вывод нужно использовать где-то еще. ls предназначен не для этого.

    Чтобы получить самый новый файл используй скрипт

    я конечно новичок, но не на столько же))

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

    Если пошагово делать — понятнее становится.

    Что делать пошагово? Пайп не терминал.

    Смотреть результат каждой команды.

    Запихни имя в переменную и используй.

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

    Лечи голову, лечи голову:

    Я не умею смотреть pipe, это разве что через strace.

    А результат ls (во всяком случае GNU) меняется от того, куда направлен вывод, в доке про это написано.

    Вывод $ ls -t > /tmp/tmpfile && cat /tmp/tmpfile
    в общем случае совпадёт с выводом $ ls -t

    Я не умею смотреть pipe, это разве что через strace.

    Мы о разном. Но тебе виднее.

    -1 list one file per line. Avoid ‘\n’ with -q or -b

    Источник

  • Оцените статью