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

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

  • автор:

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

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

Чтобы скопировать файл `my-copy’ в файл `neighbor-copy’, наберите:

$ cp my-copy neighbor-copy [Enter]

Эта команда создает новый файл с именем `neighbor-copy’, который является идентичным файлу `my-copy’ во всех отношениях, кроме имени файла, имени владельца, группы и времени модификации — новый файл имеет время модификации, указывающее момент его копирования. Файл `my-copy’ не изменяется.

Чтобы сохранить все атрибуты оригинального файла, включая его время модификации, имя владельца, группу и права доступа, используйте ключ `-p’ («preserve»)(сохранить).

Чтобы скопировать файл `my-copy’ в файл `neighbor-copy’, сохранив все атрибуты исходного файла в копии, наберите:

$ cp -p my-copy neighbor-copy [Enter]

Эта команда копирует файл `my-copy’ в новый файл `neighbor-copy’, полностью идентичный исходному по всем аспектам, кроме имени файла.

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

Чтобы скопировать каталог `public_html’ вместе со всеми его файлами и подкаталогами, в новый каталог `private_html’, введите:

$ cp -R public_html private_html [Enter]

Опция `-R’ не копирует файлы, являющиеся символической ссылкой, и не сохраняет оригинальные права доступа к файлам. Чтобы скопировать каталог рекурсивно, включая все ссылки и учитывая все права доступа, используйте опцию `-a’ («archive»). Это полезно для резервного копирования больших по объему деревьев каталогов.

Чтобы сделать резервную копию дерева каталогов `public_html’ в каталог `private_html’, введите:

О терминале Linux

Создать файл в терминале linux
создайте файл в терминале linux содержащий список процессов пользователя root, отсортированный по.

Как изменить строку ввода (её формат) в терминале Kali Linux?
День добрый, на свой вопрос ответа нигде не нашел. Опыта работы с личинкой почти не имею. Хочу.

Ifconfig не видит сетевую карту,но подключение есть — kali linux Хочу вывести в терминале список вай-фай сетей
я нуб,толком не понимаю,что происходит. Хочу вывести список вай фай сетей в терминале. Видел.

Работа в терминале Linux на языке GO
нужно выполнить 3 лаб.задания (препод засчитывает как за контрольную, 01 02 и 03), делать в.

Как работает ввод текста в терминале linux?
Всем привет, кто нибудь может объяснить хотя бы примерно, как работает ввод текста в терминале с.

Сообщение от Shinya
Сообщение от Shinya
Сообщение от Shinya
Сообщение от Shinya
Сообщение от Shinya
Сообщение от Shinya
Сообщение от Shinya
Сообщение от Shinya
Сообщение от Shinya
Сообщение от Shinya
Сообщение от Shinya
Сообщение от Shinya
Сообщение от Shinya
Сообщение от Shinya

Вопрос не уточнён, а то можно ответить про то, как номера клавиш передаются по USB. Наверное, имеется ввиду терминал. В терминале кнопки вверх/вниз перебирают историю команд.

Сообщение от Shinya

В домашнюю директорию пользователя.

Сообщение от Shinya

Лучший ответСообщение было отмечено Shinya как решение

Решение

Escape codes. Цветной текст в терминале linux
Я делаю вывод текста в терминал на linux. Я смог найти, как сделать цветной вывод, благодаря.

Не могу ввести пароль в терминале linux mint
Вообщем хотел установить ngnix сервер по видео уроку. После ввода команды "sudo apt-get update".

работа в терминале
Это не совсем тема с++, но все же: как в терминале ввести цифру 0 а не символ ‘0’ после.

Запустить в терминале
Давно не залазил Ubutu. Не могу понять почему нет появляется пункт меню "Запустить в терминале".

1c 8.2 Виснет в терминале
Зависает 1с 8.2 при работе через терминал. Опытным путем выяснил что проблема возникает при.

Как копировать файлы и каталоги в 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 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выводы

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

How to copy in bash all directory and files recursive?

Problem that in DestFolder not only all tree, but in up level all another levels and files.

Yves M.'s user avatar

4 Answers 4

code for a simple copy.

code for a copy with success result

code for Forcefully if source contains any readonly file it will also copy

for details help

also try this cp -r ./dist/* ./out ;

this command will copy dist/* files to out dir;

You might find it handy to keep your attributes set

cp -arf ./SourceFolder ./DestFolder

Harry Bosh's user avatar

    The Overflow Blog
Linked
Related
Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.8.29.43607

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

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

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