Как скопировать файл в папку etc
Задачи по копированию файлов из одного места в другое возникают у пользователей чаще всего, скопировать нужные объекты можно через менеджер файлов, в котором следует найти нужную директорию и после воспользоваться контекстным меню. Однако есть гораздо более простые способы, в этой статье речь как раз пойдет о них, точнее о копировании файлов в Линукс из консоли.
Знание о команде cp полезны, ведь файловый менеджер может некорректно работать из-за проблем с графической оболочкой. Серверные компьютеры вообще управляются только через консоль. Перемещать файлы с помощью терминала очень удобно, в этом может убедиться каждый пользователь. Скопировать файлы можно как с помощью утилиты cp, так же используя tar и find.
Синтаксис
Рассмотрим синтаксис утилиты.
cp [параметр] [что копировать] [куда купировать]
Как только команда будет активирована, отправляемый файл перенесется в место для приема, при указании на конце файла значка «/» он также будет перенесен, но с новым именем.
- --attributes-only – переместить не сам файл, а только данные пользователя и флаги доступа;
- -f --force – вместо старых данных записать новые;
- -i --interactive – спросить о необходимости переписывать старую информацию;
- -L – создать копию не ссылок-символов, а того, что находится по этим ссылкам;
- -n – оставить старые файлы на их месте;
- -P – игнорировать ссылки-символы;
- -r – скопировать данные Linux используя рекурсию;
- -s – ничего не копировать, просто создать ссылки-символы;
- -u – копировать файл, но при условии, что он уже был изменен;
- -x – проводить все действия только внутри одной системы файлов;
- -p – во время копирования сохранить все информацию о файле;
- -t – команда дает возможность считать файл для приема директорией, и отправлять в него нужный объект;
Примеры
Для первого примера, скопируем файл /root/katalog/dokument в папку, которая называется "newpapka".
cp /root/katalog/dokument /root/newpapka
Cкопируем "dokument" и "file" в каталог "newpapka".
cp /root/katalog/dokument /root/katalog/file /root/newpapka
Часто бывает так, когда копируешь несколько файлов, желательно выводить информацию, что происходит. В этом поможет опция "-v".
cp -v /root/katalog/dokument /root/katalog/file /root/newpapka
Команда cp устроена так, что все отправляемые с ее помощью файлы перезаписываются, однако программу можно заставить спрашивать пользователя о том, нужно ли перезаписывать старые данные, для этого есть специальная команда:
cp -i /root/katalog/dokument /root/newpapka
Существует альтернатива данной функции, благодаря запросу «-n» можно сказать программе, чтобы она вообще не перезаписывала файлы.
Данная возможность будет полезна при следующей ситуации: пользователю известно, что в определенном месте для копирования уже содержится тот же файл, но с устаревшей версией, а с помощью функции «-u» можно безболезненно перезаписать старые данные:
cp -u /root/katalog/dokument /root/newpapka
Для копирование папки со всем ее содержимом необходимо использовать параметр -r.
cp -r /root/katalog /root/newpapka
ВАЖНО! Как видно из скриншота, данный способ скопирует всю папку и поместит ее в новую директорию.
Если нужно только сделать копию всех файлов без папки, то опция -r не подойдет.
Можно сделать так:
cp /root/katalog/* /root/newpapka
Как видно из примера выше, команда cp работает со знаками «*» и «?», следующий запрос, займется копированием всех файлов, чье название начинается с new:
cp /root/katalog/new* /root/newpapka
Для ввода команд быстрее есть возможность применять фигурные скобки, чтобы заиметь копию файла для резерва следует ввести данную команду:
С ее помощью появится резервный файл, который имеет расширение, указанное в скобках.
Одним из неудобств функции cp является то, что она не показывает количество скопированной информации, это мешает, особенно когда приходится работать с тяжелыми файлами. Полоску прогресса можно увидеть, если использовать функцию cv.
Регулярные выражения
Для выполнения других, более сложных функций, придется использовать вместе с cp такие утилиты find и egrep.
С помощью утилиты find есть возможность использовать команды для выявления расположения файлов. Пользователь может найти данные с использованием find, а затем скопировать их, используя функция для копирования.
Вот пример, в нем проводится копирование файлов, которые содержат цифры от 1 до 5:
find /root -name 3 -exec cp <> /root/newpapka \;
ВАЖНО! Обязательно в конце команды нужно ввести ";", в противном случаи будет ошибка - exec аргумент не задан.
- /root - каталог где производить поиск.
- -name - критерии поиска.
- 4 - что искать, в данном случаи от одного до пяти.
- -exec - аргумент, который говорит, что нужно запустить команду.
- <> - подставляет имя каждого файла.
ls -1 /root | egrep '3' | xargs cp -t /root/newpapka
Данный способ не отличается особым удобством, однако использовать его можно. При работе с ним начнется копирование файлов из основной директории, чьи имена содержат лишь цифры от 1 до 5.
Копирование при помощи перенаправления вывода
В операционной системе Linux есть специальный символ ">", который означает перенаправление вывода.
Благодаря этой возможности можно не только переносить файлы, но и работать с их составляющими. Есть возможность соединить несколько файлов или наоборот разрезать их.
Используя cat можно выводить на экран основные данные файла, а затем, используя bash, пользователь сможет переносить составляющие файла из одного места в другое.
cat file1 > newfile
Одной из особенностью Linux является то, что в нем одно и то же действие можно выполнять, используя несколько различных команд.
Скопировать данные можно не только с помощью cp. Когда важные системные файлы отправляются в другое место или происходит создание резервных копий данных, нужно, чтобы такие вещи как атрибуты, владельцы данных, ссылки-символы были сохранены без каких-либо изменений.
С помощью cp так делать можно, однако на помощь придется позвать утилиту tar, чтобы она начала работу следует написать в cp «-p».
В качестве примера будет приведен туннель – одна часть запроса архивирует файл и отправляет его, другая – разархивирует и отправляет в нужное место:
tar cf - /lfc | ( cd /epl/lfc && tar xvf - )
С помощью данной команды все из папки /lfc отправляется в папку /epl/lfc. Таким способом можно скопировать любую информацию с компьютера, даже если это операционная система.
Теперь почти каждый пользователь знает, как копировать файлы в ОС. С помощью терминала делать это можно быстро, главное – запомнить все нужные команды.
копирую так cp -r firefox etc/ и папка etc появляется в загрузках, а надо , чтоб папка firefox переместилась в etc. Помогите пжлста! уже перепробовал по всякому и посмотрел в инете. Спасибо за отзывчивость, тем, кто подскажет.
Блджд, я не знаю кто ты, зачем это тебе и т.п., но учи давай основы команжной строки unix!
да и основы ляликса тоже, неча etc засирать чем не надо (не видел про директорию, сначала думал у тебя кастомный файлик конфига).
mandala ★★★★ ( 29.09.18 12:23:14 )Последнее исправление: mandala 29.09.18 12:26:07 (всего исправлений: 4)
в инете сказано что в ЕТС перемещать надо
Нет, в /etc исторически храняться только родные для оси конфиги. Стороннее ПО (полученное не штатными средствами) принято скидывать в /opt.
mandala ★★★★ ( 29.09.18 12:44:24 )Последнее исправление: mandala 29.09.18 12:45:10 (всего исправлений: 2)
в инете сказано что в ЕТС перемещать надо
Это где такое нашли ?
обьясни, почему в моем случае не в етс а в загрузки копируется?
с помощью опытных профи
Если ты пишешь так, то у тебя скопируется только в случае, если директория (папка) firefox находится в корне файловой системы и твоя текущаю директрия - это /.
Ну и по команде да, скопировать firefox из текущей директории в поддиректорию etc/ в текущей директории.
Иди почитай что-нибудь по работе в командной строке Linux, но только не видосики на Youtube.
А именно ПОЧИТАЙ и подумай, поупражняйся в работе в командной строке.
И да, копировать что-то в системные директории не стоит.
Если тебе действительно нужна помощь, то лучше расскажи что ты хочешь сделать и зачем. Т.е. для чего тебе копировать firefox куда-то.
Слеша перед etc нету, значит путь относительный, а не полный.
В ютупчике, вестимо, калохакеры же ни читать ни думать не способны.
А ещё /opt должен существовать на момент выполнения команды, а у пользователя, что её отдаёт, должны быть права на запись в эту директорию.
Если хочешь разобраться, совет простой: забудь о YouTube. Ориентируйся на книги и мануалы. И подтяни английский — на нём куда больше актуальной и полной информации.
Обычно существует, а для прав я судо воткнул в команду, чтоб права сохранить -p
Да, sudo просмотрел. А ты уверен, что права надо сохранять? Если из тарболла только для одного пользователя ставить, то можно и в
/.local_apps засунуть какое-нибудь, а у программ, что стоят для всех пользователей, владелец root обычно.
Vsevolod-linuxoid ★★★★★ ( 29.09.18 13:47:16 )Последнее исправление: Vsevolod-linuxoid 29.09.18 13:50:20 (всего исправлений: 1)
Да хз потому что что у него там за сборка лисы, может с торрента и профиль храниться не в хомяке, а рядом с бинарями, вот и подумал что безопаснее сохранить.
А так то из стартового поста ни фига не понятно почти.
А в Kali не один пользователь - root ?
Если серьезно, то я не в курсе. :D
Троль зашёл, вкинул и ушёл. А вы дальше срете.
Модеры, закройте тему.
Его же его разрабы не советуют как дистр для обучения
Это бесполезно объяснять, я уже устал.
кто старается меня подьебнуть, то это не то место)))), в натуре благодарен, тем, кто подсказывает, потому что не везде все расписано так, чтоб понять.
хотел установить фаер, в видосах и на сайтах говорилось об распаковке и дальнейшем копировании папки в ЕТС, а после запускать браузер. Выше описал как я это делал, но при вводе в терминале положенной команды, папка ЕТС непонятным образом копировалась в папку all. cp -r firefox etc/ - не мог понять отчего так происходит, поэтому написал, чтоб помогли разобраться.
Никто по твоей говноссылке не пройдет.
хотел установить фаер, скопировав firefox в etc
войди лучше в свою мамку, калоед
Возможно, ты просто тролль. Но на всякий случай:
Кали — это плохой дистрибутив для изучения Linux. Хорошие — это те, что широко используются на серверах: CentOS, Debian stable, Ubuntu LTS — именно их и стоит изучать.
YouTube, тем более ролики любителей — это плохой способ изучать Linux. Хороший — это man в системе, официальная документация, курсы и книги о (есть бесплатные, а так же торренты). Есть и видеоформат, но большинство — литература. Англоязычные свежее и полнее. Зачастую попадаются хорошие статьи от практикующих админов.
Зачастую приходится использовать форумы и поиск по ним для специфичных вопросов, типа установки дров на видеокарту или спецефичного ПО.
Vsevolod-linuxoid ★★★★★ ( 29.09.18 18:53:32 )Последнее исправление: Vsevolod-linuxoid 29.09.18 18:57:41 (всего исправлений: 2)
кому тогда можно вопросы то задавать. Епта, спросил совета, тут же говнари полезли, тут чЁ нормальных то нет!
Как скопировать файл к себе по сети?
Добрый убунту server стоит как скопировать файл к себе на ПК по сети, пробовал подключиться по.
Как переслать файл в папку root в ubuntu?
Здравствуйте, подскажите пожалуйста как скопировать файл в папку рут в убнту,пробовал такой.
Как скопировать файл из одного каталога в другой?
Подскажите пожалуйста как в Ubuntu скопировать файл из одного каталога в другой знаю что команда cp.
Через sudo или под рутом делай. Пробовал и под root-ом и через судо. И через лайв сиди. Через лайв сиди вообще ничего не копируется, хотя все видно. Опиши, блин, проблему по-нормальному. "не получается" это не описание. Сложно написать команды, которые выполняешь, и их вывод?
Еще по другому: правая кнопка мыши по файлу копировать, вхожу в etc не нажимается вставить.
Еще загружался с лайв cd, заходил на жесткий диск, правой кнопкой мыши по файлу, не нажимает копировать вообще ни в какой папке.
Добавлено через 2 минуты
Добавлено через 35 секунд
Через терминал вообще ничего не копируется. Ни одной командой с правами рута.
Добавлено через 41 секунду
А файл существует в папке.
У тебя файла нет, тебе же уже по-английски написали и по-русски. Ты бухой? Что будет копироваться, если тупо нет файла. Нет его.
Добавлено через 37 секунд
мда, в линуксе без мышки уже никак.
Возможно тема не актуальна уже, но ещё дело может быть в регистре.Дело в том, что в Linux файлы READme и readme разные, а лежать могут в одном каталоге. SnurMax автор темы как мы увидели пока далёк от консоли, позже, если захочет разберётся. Нужно права папки etc/ поменять на 777.
Заходишь в папку etc/ (через терминал) и пишешь:
Как можно через программу putty скопировать файл на ftp или на комп?
скажите пожалуйста как можно через программу putty скопировать файл на ftp или на комп
Терминал в Linux Ubuntu (как копировать папку в папку?)
Помогите мне, пожалуйста! SOS. Что набрать в терминале, чтобы скопировать.
Как скопировать файл в папку?
Существует директория, в которую нужно записывать файлы (желательно doc и pdf). Как можно.
Как скопировать файл в папку приложения
Нужно скопировать файл в папку приложения . bin\debug\Music\ private void.
Обычной практикой является использование команды cp для копирования файлов и rsync для копирования каталогов.
Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права записи в целевой каталог.
Копирование файлов с помощью команды cp
В операционных системах Linux и Unix команда cp используется для копирования файлов и каталогов.
Если целевой файл существует, он будет перезаписан. Чтобы получить запрос на подтверждение перед перезаписью файлов, используйте параметр -i .
По умолчанию при использовании команды cp для копирования файла новый файл будет принадлежать пользователю, выполняющему команду. Используйте параметр -p чтобы сохранить режим файла, владельца и временные метки :
Скопируйте файл в каталог
Чтобы скопировать файл в каталог, укажите абсолютный или относительный путь к каталогу. Если целевой каталог не указан, файл копируется в текущий каталог.
В следующем примере мы file.txt файл file.txt в file.txt /backup :
При указании в качестве места назначения только имени каталога скопированный файл будет иметь то же имя, что и исходный файл.
Если вы хотите скопировать файл под другим именем, вам необходимо указать желаемое имя файла:
Приведенная выше команда скопирует файл в указанный каталог как new_file.txt .
Копировать несколько файлов
Чтобы скопировать сразу несколько файлов и каталогов, укажите имена исходных файлов и каталогов, за которыми следует каталог назначения в качестве последнего аргумента:
При копировании нескольких файлов местом назначения должен быть каталог.
Команда cp также позволяет использовать сопоставление с образцом. Например, чтобы скопировать все файлы .jpg из текущего каталога в каталог /backup , вы должны использовать:
Копирование каталогов с помощью команды cp
Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R или -r . В следующем примере мы копируем каталог Pictures в Pictures_backup :
Приведенная выше команда создаст каталог назначения и рекурсивно скопирует все файлы и подкаталоги из источника в каталог назначения.
Если целевой каталог уже существует, сам исходный каталог и его содержимое копируются в целевой каталог. Чтобы скопировать только файлы и подкаталоги, но не целевой каталог, используйте параметр -T :
Параметры, используемые при копировании файлов, также могут использоваться при копировании каталогов. Основное отличие состоит в том, что при копировании каталогов необходимо использовать параметр -R .
Копирование файлов и каталогов с помощью команды rsync
rsync включает множество параметров, которые контролируют каждый аспект его поведения.
Наиболее полезная опция -a которая рекурсивно копирует каталоги, передает специальные и блочные устройства и сохраняет символические ссылки, время модификации, группу, владение и разрешения.
Чтобы скопировать один файл из одного места в другое, вы должны выполнить следующую команду:
Если целевой файл существует, rsync перезапишет его.
Эту же команду можно использовать для копирования каталога:
Чтобы узнать больше о rsync прочтите следующие статьи:
Выводы
Мы показали вам, как копировать файлы и каталоги в системах на базе Linux и Unix, используя утилиты cp и rsync .
Копирование файлов - одна из задач, наиболее часто возникающих перед пользователями персонального компьютера. Конечно, можно открыть файловый менеджер, войти в нужную папку и скопировать файл с помощью контекстного меню - тут не о чем говорить. Но в этой статье я хотел бы рассмотреть копирование файлов в Linux с помощью терминала.
Не всегда есть доступ к файловому менеджеру: из-за различных поломок графическая оболочка на домашнем компьютере может быть недоступна, а на серверах используется только консольный интерфейс. К тому же копирование файлов Ubuntu через терминал намного эффективнее, и вы сами в этом убедитесь. Сегодня мы рассмотрим не только обычное копирование командой cp Linux, но и не совсем обычное: с помощью tar и find.
Утилита копирования файлов cp
Название утилиты cp - это сокращение от Copy, что означает копировать. Утилита позволяет полностью копировать файлы и директории.
Синтаксис и опции
Общий синтаксис cp выглядит вот так:
$ cp опции файл-источник файл-приемник
$ cp опции файл-источник директория-приемник/
После выполнения команды файл-источник будет полностью перенесен в файл-приемник. Если в конце указан слэш, файл будет записан в заданную директорию с оригинальным именем.
Утилита имеет несколько интересных опций, которые могут сильно помочь при нестандартных задачах копирования, поэтому давайте их рассмотрим:
- --attributes-only - не копировать содержимое файла, а только флаги доступа и владельца;
- -f, --force - перезаписывать существующие файлы;
- -i, --interactive - спрашивать, нужно ли перезаписывать существующие файлы;
- -L - копировать не символические ссылки, а то, на что они указывают;
- -n - не перезаписывать существующие файлы;
- -P - не следовать символическим ссылкам;
- -r - копировать папку Linux рекурсивно;
- -s - не выполнять копирование файлов в Linux, а создавать символические ссылки;
- -u - скопировать файл, только если он был изменён;
- -x - не выходить за пределы этой файловой системы;
- -p - сохранять владельца, временные метки и флаги доступа при копировании;
- -t - считать файл-приемник директорией и копировать файл-источник в эту директорию.
Примеры копирования файлов в linux
Теперь, когда вы знаете основные опции, можно перейти к практике. Например, мы хотим скопировать некую картинку из домашней папки в подкаталог pictures:
Или можем явно указать имя новой картинки:
Копирование папок осуществляется с помощью ключа -r:
После выполнения этой команды копирования
/папка будет скопирована в папку
/Документы. Главное, не забывайте поставить слэш в конце выражения или использовать опцию -t. Иначе папка
/документы будет перезаписана.
По умолчанию команда cp Linux перезаписывает существующие файлы или папки, но можно заставить утилиту спрашивать, нужно ли перезаписывать каждый файл, если вы не уверены в правильности составления команды:
Есть и противоположная опция -n, означающая "никогда не перезаписывать существующие файлы".
Опция -u полезна в следующем случае: вы знаете или предполагаете, что в директории, куда копируется файл, есть старая его версия, тогда оператор -u выполнит замену на новую версию:
Сp также поддерживает специальные символы замены * и ?. Например, следующая команда скопирует все файлы, начинающиеся на test:
Если нужно применить более сложные регулярные выражения, придётся комбинировать утилиту cp с find или egrep.
В случае, если важно сохранить права доступа к файлу и его владельца, нужно использовать опцию -p:
Для упрощения использования команды можно применять синтаксис фигурных скобок. Например, чтобы создать резервную копию файла, выполните:
Будет создан файл с таким же именем и расширением .bak
По умолчанию в cp не отображается прогресс копирования файла, что очень неудобно при работе с большими файлами, но его можно легко посмотреть с помощью утилиты cv.
Копирование файлов по регулярным выражениям в Linux
В утилите find можно применять различные условия и регулярные выражения для поиска файлов. Я уже немного писал о ней в статье как найти новые файлы в Linux. Мы можем скопировать все найденные с помощью find файлы, вызвав для каждого из них команду cp. Например, копируем все файлы в текущей директории, содержащие в имени только цифры:
find . -name 7 -exec cp <>
Здесь точка указывает на текущую директорию, а параметр name задает регулярное выражение. Параметром exec мы задаем, какую команду нужно выполнить для обнаруженных файлов. Символ <> - подставляет имя каждого файла.
Но не find'ом единым такое делается. То же самое можно получить, запросив список файлов директории в ls, отфильтровав его по регулярному выражению egrep и передав имена файлов по очереди в cp с помощью xargs:
/ | egrep '[a-zA-Z]' | xargs cp -t
Это не совсем удобный способ копировать файлы Linux, но всё же он возможен. Будут скопированы все файлы из домашней директории, содержащие в имени только английские буквы.
Копирование содержимого файлов в Linux
Вы можете не только копировать сами файлы, но и управлять их содержимым. Например, склеить несколько файлов в один или разрезать файл на несколько частей. Утилита cat используется для вывода содержимого файла, в комбинации с операторами перенаправления вывода Bash вы можете выполнять копирование содержимого файла Linux в другой файл. Например:
cat файл1 > файл2
Если файл был не пустым, он будет перезаписан. Или мы можем склеить два отдельных файла в один:
cat файл1 файл2 > файл3
Специальное копирование файлов в Linux с помощью tar
Linux интересен тем, что позволяет выполнять одно и то же действие различными путями. Копирование в Linux тоже может быть выполнено не только с помощью cp. При переносе системных файлов в другой каталог, резервном копировании системных файлов и т.д. важно чтобы сохранились атрибуты, значения владельцев файлов и символические ссылки как они есть без какой-либо модификации.
tar cf - /var | ( cd /mnt/var && tar xvf - )
Здесь мы полностью копируем содержимое папки /var в папку /mnt/var. Так вы можете копировать папку Linux, причём абсолютно любую или даже целую операционную систему.
Выводы
Теперь вы знаете, как выполняется копирование файлов Ubuntu и в Linux в целом. Как видите, в терминале это выполняется намного быстрее и эффективнее, чем с помощью графического интерфейса, если помнить нужные команды. Если у вас остались вопросы, спрашивайте в комментариях!
Читайте также: