Копирование файлов: Как скопировать файл или папку три простых способа – Копирование файлов

Содержание

Как скопировать файл или папку три простых способа

Многие начинающие пользователи компьютера сталкивается с вопросом: «А как копировать файл или папку?». Копированием называется процесс, при котором создается точная копия данных и отправляется в нужное место (это может другой носитель, или же перемещение внутри компьютера).

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

Как скопировать файл три простых способа

Первый способ: Копирование с помощью мышки.

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

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

Затем, открываем папку куда необходимо скопировать файл (это может быть другая папка на рабочем столе, или же флешка). Открыв папку (в моем случае я назвал его Урок 2),  копируем файл, сделав один клик правой кнопкой (на свободное пространство), и всплывающем окне из списка выбираем вставить. И ваш документ скопирован.

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

Стоит заметить, если файл небольшой, то копирование произойдет за пару секунд. Если же файл большой, то это займет немножко времени, и на экране у вас всплывет окно, на котором можно будет отследить процесс копирования файла. Скорость копирования может зависеть, также и от операционной системы.

Процесс копирования файлов

Второй способ: Копирование с помощью клавиатуры

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

1. Выделяем нужный файл и нажимаем клавиши Ctrl и С (на английском языке), таким образом ваш файл скопирован.

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

2. Выбираю папку или другой носитель, куда необходимо скопировать файл. Открываем. И нажимаю клавиши Ctrl и V.

Копирование файлов Ctrl и V

Все ваш файл или папка скопирована со всеми находящимися в ней данными.

Третий способ: Копирование методом перетаскивания

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

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

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

Копирование папок

Наводим курсор мыши на нужный файл, и нажимаю левую кнопку мышки. Не отпуская левую кнопку, перетаскиваю нужный файл в планируемое место для копирования. Должна появится надпись + Копировать в «указывается наименование файла, куда копируется».

Как копировать папки на компьютере

Далее, отпускаем кнопку мыши и файл начнет копироваться в указанное вами место.

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

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

Помимо этих способов копирования файла, также существует специальные программы, такие как CopyFolder, CopyMastro, Extention Copy и т.д., которые ускорят процесс копирования.

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

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

В Windows для работы с файлами, папками и дисками можно использовать или папку «Компьютер», или программу — файловый менеджер «Проводник», которые установлены при инсталляции операционной системы Windows. Папка «Компьютер» открывается через «Главное меню», для запуска программы «Проводник» щелкните правой кнопкой на кнопке «Пуск» и выберите пункт меню «

Открыть проводник».

к оглавлению ↑

Как копировать папку или файл

Копирование применяется для создания полной копии объекта Windows со всеми его свойствами (название, содержимое, размер) в другом месте жесткого диска или съемного носителя. Например, для создания копии на «флешке» ваших фотографий, музыки, документов и т.п. При копировании, ваши исходные данные на жестком диске или другом носителе остаются на месте.

Рассмотрим копирование папки пошагово, на примере работы в обозревателе  дисков «Компьютер».

  1. Откройте папку «Компьютер» щелкнув по соответствующему пункту в «Главном меню».главное меню windows
  2. Выберите локальный диск, в котором находятся файлы или папки для копирования.выбор локального диска
  3. Выберите необходимый файл или папку для копирования.
  4. Кликом правой кнопки мыши на выбранном объекте вызовите контекстное меню, в котором кликните левой кнопкой мыши на пункт «Копировать».выбор папки в windows
  5. Меню пропадет, а выбранный объект будет скопирован во временное хранилище в памяти компьютера, называемое «Буфер обмена». Визуально данное действие никак не будет отражено.
  6. Для завершения копирования папки (или файла) теперь его нужно вставить.
к оглавлению ↑

Как вставить папку или файл

В результате предыдущей операции, наша папка (или файл) находится в буфере обмена, ожидая вставки. Вставка – это копирование объекта из буфера обмена в какое-либо место жесткого диска или съемного носителя. Для выполнения выполните следующие действия:

  1. Двойным кликом левой кнопки мыши выберите в обозревателе дисков «
    Компьютер
    » место, куда нужно вставить объект из буфера обмена. Это может быть корневой каталог диска или папка в нем.
  2. Кликом правой кнопки мыши в пустом месте окна вызовите контекстное меню, где кликните левой кнопкой «Вставить», в результате чего в выбранном месте появится необходимая папка или файл, а исходный объект остается на месте.вставка файла в windows
к оглавлению ↑

Перемещение папки или файла с помощью операции «Вырезание»

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

  1. Выберите в обозревателе дисков «Компьютер» необходимый объект.
  2. Щелчком правой кнопки мыши на выбранном объекте вызовите контекстное меню, в котором кликните на пункте «
    Вырезать
    ».
  3. Контекстное меню пропадет, папка (или файл) будет скопирована в буфер обмена. Иконка объекта поблекнет.
  4. Вставить папку или файл в нужное место, выполнив выше рассмотренную операцию «Вставить». Исходный объект в прежнем месте будет удален.
к оглавлению ↑

Групповая операция копирования, вставки, перемещения папок и файлов

До сих пор мы оперировали с одним файлом или папкой. А что делать, если нам нужно скопировать или переместить несколько? Копировать по одному файлу, особенно если их много – нерационально. Для этого существует такой прием, как выделение. Чтобы выделить нужные объекты, зажмите левую кнопку мышки и, не отпуская ее, обведите курсором нужные объекты. Выделенные файлы и папки будет в прямоугольной зоне, окрашенной в синий цвет.

выделение файлов в windows

После чего вызовите контекстное меню щелчком правой кнопки и выберите в нем необходимое действие (копировать, вставить, вырезать).

групповое копирование файлов и папок в windows

Поделиться.
к оглавлению ↑

Еще по теме:

  • Архивация файлов средствами WindowsАрхивация файлов средствами Windows Чтобы уменьшить размеры файла или всех файлов, находящихся в папке, их можно сжать или по-другому – архивировать. Обычно эта методика применяется в тех случаях, когда файлы пересылаются по […]
  • Как выделить файлы и папкиКак выделить файлы и папки Выделение  файлов и папок в операционной системе – одна из самых распространенных операций. Необходимость в данной операции возникает при копировании, перемещении, архивировании, удалении […]
  • Что такое буфер обмена?Что такое буфер обмена? Практически все компьютерные чайники, сталкиваясь с понятием «буфер обмена» с трудом понимают, что это такое и какая от него польза. Услышанные от более продвинутых пользователей такие […]
  • Доступ к недавно открывавшимся файлам и папкам
    Доступ к недавно открывавшимся файлам и папкам Если нужно найти файл, открыть его и продолжить работу с недавно открывавшимся файлом, воспользуйтесь возможностью быстрого доступа, предоставляемой Windows. Откройте меню кнопки «Пуск» и […]
  • Организация данных в WindowsОрганизация данных в Windows Грамотная организация данных заключается в упорядочение файлов путем их хранения в отдельных папках. В Windows файлы и папки упорядочиваются определенным образом. С помощью заранее […]

правильное копирование папок с файлами в *nix / RUVDS.com corporate blog / Habr

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

Допустим нам нужно скопировать всё из папки /source в папку /target.

Первое, что приходит на ум это:

cp /source/* /target

Сразу исправим эту команду на:
cp -a /source/* /target

Ключ -a добавит копирование всех аттрибутов, прав и добавит рекурсию. Когда не требуется точное воспроизведение прав достаточно ключа -r.

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

.profile
.local
.mc

и тому подобные.

Почему же так произошло?

Потому что wildcards обрабатывает shell (bash в типовом случае). По умолчанию bash проигнорирует все файлы начинающиеся с точек, так как трактует их как скрытые. Чтобы избежать такого поведения нам придётся изменить поведение bash с помощью команды:

shopt -s dotglob

Чтобы это изменение поведения сохранилось после перезагрузки, можно сделать файл wildcard.sh c этой командой в папке /etc/profile.d (возможно в вашем дистрибутиве иная папка).

А если в директории-источнике нет файлов, то shell не сможет ничего подставить вместо звёздочки, и также копирование завершится с ошибкой. Против подобной ситуации есть опции failglob и nullglob. Нам потребуется выставить failglob, которая не даст команде выполниться. nullglob не подойдёт, так как она строку с wildcards не нашедшими совпадения преобразует в пустую строку (нулевой длины), что для cp вызовет ошибку.

Однако, если в папке тысячи файлов и больше, то от подхода с использованием wildcards стоит отказаться вовсе. Дело в том, что bash разворачивает wildcards в очень длинную командную строку наподобие:

cp -a /souce/a /source/b /source/c …… /target

На длину командной строки есть ограничение, которое мы можем узнать используя команду:
getconf ARG_MAX

Получим максимальную длину командной строки в байтах:
2097152

Или:
xargs --show-limits

Получим что-то типа:
….
Maximum length of command we could actually use: 2089314
….

Итак, давайте будем обходиться вовсе без wildcards.

Давайте просто напишем

cp -a /source /target

И тут мы столкнёмся с неоднозначностью поведения cp. Если папки /target не существует, то мы получим то, что нам нужно.

Однако, если папка target существует, то файлы будут скопированы в папку /target/source.

Не всегда мы можем удалить заранее папку /target, так как в ней могут быть нужные нам файлы и наша цель, допустим, дополнить файлы в /target файлами из /source.

Если бы папки источника и приёмника назывались одинаково, например, мы копировали бы из /source в /home/source, то можно было бы использовать команду:

cp -a /source /home

И после копирования файлы в /home/source оказались бы дополненными файлами из /source.
Такая вот логическая задачка: мы можем дополнить файлы в директории-приёмнике, если папки называются одинаково, но если они отличаются, то папка-исходник будет помещена внутрь приёмника. Как скопировать файлы из /source в /target с помощью cp без wildcards?

Чтобы обойти это вредное ограничение мы используем неочевидное решение:
cp -a /source/. /target

Те кто хорошо знаком с DOS и Linux уже всё поняли: внутри каждой папки есть 2 невидимые папки «.» и «..», являющиеся псевдопапками-ссылками на текущую и вышестоящие директории.
  • При копировании cp проверяет существование и пытается создать /target/.
  • Такая директория существует и это есть /target
  • Файлы из /source скопированы в /target корректно.

Итак, вешаем в жирную рамочку в своей памяти или на стене:
cp -a /source/. /target

Поведение этой команды однозначно. Всё отработает без ошибок вне зависимости от того миллион у вас файлов или их нет вовсе.

Выводы


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

vmspike предложил аналогичный по результату вариант команды:
cp -a -T /source /target

Oz_Alex
cp -aT /source /target

ВНИМАНИЕ: регистр буквы T имеет значение. Если перепутать, то получите полную белиберду: направление копирования поменяется.

Благодарности:
  • Компании RUVDS.COM за поддержку и возможность публикации в своем блоге на Хабре.
  • За изображение TripletConcept. Картинка очень большая и детальная, можно открыть в отдельном окне.

P.S. Замеченные ошибки направляйте в личку. Повышаю за это карму.

Копирование файлов и папок компьютера. Как переместить файлы (Windows)

Есть несколько способов перемещения файлов и папок в компьютере. Но мы рассмотрим универсальный — тот, которым можно перенести информацию с CD или DVD диска, записать данные на флешку и с флешки. Также при помощи него можно переписать фото или видео с фотоаппарата (видеокамеры), с мобильного телефона и с других подключаемых к компьютеру устройств.

 

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

Как переместить файл или папку

Щелкните правой кнопкой мышки по файлу или папке, которую хотите перенести в другое место. В открывшемся списке нажмите на пункт «Копировать».

После этого нужно открыть на компьютере то место, в которое Вы хотите перенести файл или папку. Это может быть Локальный диск D, папка Документы или любая другая папка, Рабочий стол и даже флешка.

Затем щелкните правой кнопкой мышки по пустому месту (не по какому-то значку, а рядом) и из списка выберите пункт «Вставить».

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

То есть, если разобраться, получается следующее: Вы открыли место, из которого хотите взять файл (например, открыли флешку), нажали по нужному файлу правой кнопкой мышки, выбрали из списка пункт «Копировать», затем открыли место, куда хотите перенести этот файл (например, открыли Документы), нажали по пустому правой кнопкой мышки и выбрали пункт «Вставить». В общем-то, ничего сложного.

Копирование нескольких файлов (папок)

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

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

Как выделить файлы и папки

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

Выделение

А теперь скопируем их:

Щелкните правой кнопкой мыши по любому выделенному значку (файлу, папке). Откроется список, из которого нужно выбрать пункт «Копировать».

Копировать

Затем откройте на компьютере то место, в которое хотите поместить эти файлы и папки. Это может быть Локальный диск D, Документы, флешка или какая-то папка.

И, наконец, нажмите правой кнопкой мыши по пустому месту (по белому полю) и из появившегося списка выберите пункт «Вставить».

Вставить

Всё! Файлы и папки перенеслись в новое место. То есть, они теперь в двух местах: и там, где были изначально, и в новом месте – там, куда Вы их скопировали.

Не пугайтесь, все не так сложно, как кажется на первый взгляд. Нужно только чуть-чуть потренироваться. Удачи!

Копирование файла или папки — Технологии Яндекса

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

API отвечает кодом 201 Created (ресурс успешно скопирован), и возвращает ссылку на мета-информацию о созданном ресурсе в теле ответа, в объекте Link.

Пример ответа:

{
  "href": "https://cloud-api.yandex.net/v1/disk/resources?path=disk%3A%2Ffoo%2Fbar",
  "method": "GET",
  "templated": false
}

Непустая папка может копироваться в течение произвольного времени, поэтому API отвечает кодом 202 Accepted (копирование папки начато).

Приложения должны самостоятельно следить за статусами запрошенных операций. API возвращает ссылку на статус запущенной по запросу операции в теле ответа, в объекте Link.

Пример ответа:

{
  "": "https://cloud-api.yandex.net/v1/disk/operations?id=33ca7d03ab21ct41b4a40182e78d828a3f8b72cdb5f4c0e94cc4b1449a63a2fe",
  "": "GET",
  "": false
}
Описание элементов ответа
ЭлементОписание
href

URL. Может быть шаблонизирован, см. ключ templated.

method

HTTP-метод для запроса URL из ключа href.

templated

Признак URL, который был шаблонизирован согласно RFC 6570. Возможные значения:

  • «true» — URL шаблонизирован: прежде чем отправлять запрос на этот адрес, следует указать нужные значения параметров вместо значений в фигурных скобках.

  • «false» — URL может быть запрошен без изменений.

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

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


 

Для начала нам понадобиться вспомнить принцип работы мышки, правая кнопка «спрашивает что сделать», а левая выполняет вашу команду.

Рассмотрим случай когда файл, который нужно перенести расположен на рабочем столе.

песня на рабочем столе

У меня это будет песня «о боже какой мужчина» ,находим ее и нажимаем правой кнопкой мышки, то есть спрашиваем у системы, что можно сделать с этой песней.

скрин вырезать копировать

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

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

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


 

Разбираем сначала функцию копировать

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

копируем файл

Но после того как вы нажали функцию копировать меню пропало и ничего не происходит, не пугайтесь, все правильно, так и должно быть. Когда вы нажали копировать, система перенесла песню на временную память, которую мы не видим. Для лучшего понимания смотрим на картинку ниже:

схема копирования

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

Снова покажу на своем примере, я буду копировать песню в папку с музыкой, которая расположена на «локальном диске D». Внимательно наблюдаем за картинками и повторяем.

Нажимаю на значок «мой компьютер» (двойным щелчком левой кнопки мыши)

значок мой компьютер

Попадаю на окно выбора жесткого диска, тут может быть несколько директорий, я выбираю диск «D», вы можете выбрать нужный вам диск, но настоятельно рекомендую не использовать для хранения файлов директорию «С»

локальные диски

Теперь ищу папку музыка и захожу в нее.

папка музыка

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

Для этого выбираем пустое место, нажимаем правой кнопкой мыши и видим такое меню:

вставляем файл

В нем нам осталось нажать левой кнопкой мыши на строчку вставить и система поймет, что вы хотите положить песню именно сюда ну и соответственно скопирует ее в эту папку.

папка музыка

Как видите песня появилась в нужной нам папке, вы сделали все правильно, если не появилась, то вы что-то пропустили.

 


Кратко напоминаю алгоритм:

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


 

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

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

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


 

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

Смотрим на том же примере с песней, но теперь мы ее будем не копировать, а вырезать.

Нахожу песню, нажимаю правой кнопкой мышки и выбираю строчку вырезать левой кнопкой.

вырезаем файл

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

вырезанный файл

Теперь мы идем в папку куда хотим перенести эту песню:

Мой компьютер – локальный диск D — музыка

схема перемещения файла

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

меню вставить

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

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

Надеюсь вы усвоили материал и теперь можете свободно перемещать файлы и папки на своем компьютере.

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

Предыдущий урок

Задать вопрос

Содержание

Следующий урок

Как правильно скопировать файлы и папки исключая некоторые из них / Habr

Топик написан в ответ на похожий.

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

Но главная проблема этого подхода в другом — он не соответствует идеологии unix: сложные задачи решаются комбинацией простых утилит.

Под катом подробности о методах решения этого класса задач — не рассматривайте это как готовый рецепт.

0. Декомпозиция

Решение любой комплексной задачи начинается с разбора её на составные части. Итак нам нужно скопировать некоторый набор файлов предварительно его отфильтровав.
Значит — получение списка файлов, фильтрация, копирование.
1. Получение списка файлов

Обычно мы просматриваем список файлов программой ls. Её вывод выглядит примерно так:

$ ls -1
dir1
dir2
file1.bin
file2.txt

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

Следующая программа, которая приходит на ум — find

$ find ./
./
./dir1
./dir1/file7.txt
./dir2
./file1.bin
./file2.txt

Уже лучше но в вывод попали и директории, а они нам не нужны. Попробуем так:
$ find ./ -type 'f'
./dir1/file7.txt
./file1.bin
./file2.txt

Вот то, что там нужно. Список файлов.

2. Фильтрация

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

$ find ./ -type 'f' | grep 2
./dir2
./file2.txt

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

$ find ./ -type 'f' | grep -v 2
./dir1/file7.txt
./file1.bin

Первые две части выполнены.

3. Копирование

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

$  find ./ -type 'f' | grep -v 2 | xargs -n 1 -I % cp --parents  "%"  /path/to/dest/dir/

-n 1 значит, что только одна строка из стандартного ввода подставляется в комманду, а -I % — определяет символ, который будет заменен в целевой комманде на строчку из стандартного ввода. В нашем случае это будет
 cp --parents  "./dir1/file7.txt"  /path/to/dest/dir/
 cp --parents  "./file1.bin"  /path/to/dest/dir/

Можно считать, что задача решена.

Вместо заключения

Я надеюсь что это описание поможет правильно подходить к решению как таких простых так и более комплексных задач.

Хочется отметить, что

  • Это топик способах решения задач и немного о применении конвейера, а не о копировании файлов
  • Этот способ далеко не едиственный и даже не самый короткий, а наиболее наглядный для демонстрации методологии решения.
  • В случае этой конкретной задачи будет быстрее воспользоваться find ./ -type f ! -name "*2*" -exec cp --parents -t /target/dir "{}" \+
  • Лично я воспользовался-бы tar --exclude=2 -cf - ./ | ( cd /path/to/dest/ && tar -xvf - )
  • Т.к. это первый мой топик, буду рад конструктивной критике

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

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