Linux перезаписать файл без подтверждения

Содержание
  1. Копировать существующие файлы без подтверждения?
  2. Как заставить cp перезаписывать без подтверждения
  3. 16 ответов
  4. Команда cp
  5. Описание команды cp
  6. Синтаксис
  7. Опции
  8. Примеры использования команды cp
  9. Скопировать файл в другую директорию
  10. Скопировать несколько файлов
  11. Скопировать файл с подтверждением
  12. Показать информацию о копируемых файлах
  13. Скопировать директорию
  14. Скопировать только если файлы новее
  15. Не перезаписывать существующие файлы
  16. Скопировать только атрибуты
  17. Создать резервную копию для результирующих файлов, если они существуют
  18. Принудительно перезаписывать существующие файлы назначения
  19. unixforum.org
  20. Решено: Копирование файлов без вопроса о замене (cp: переписать file?)
  21. Решено: Копирование файлов без вопроса о замене
  22. Re: Решено: Копирование файлов без вопроса о замене
  23. Re: Решено: Копирование файлов без вопроса о замене
  24. Re: Решено: Копирование файлов без вопроса о замене
  25. Re: Решено: Копирование файлов без вопроса о замене
  26. Re: Решено: Копирование файлов без вопроса о замене
  27. Re: Решено: Копирование файлов без вопроса о замене
  28. Копирование файлов в Linux
  29. Утилита копирования файлов cp
  30. Синтаксис и опции
  31. Примеры копирования файлов в linux
  32. Копирование файлов по регулярным выражениям в Linux
  33. Копирование содержимого файлов в Linux
  34. Специальное копирование файлов в Linux с помощью tar
  35. Выводы

Копировать существующие файлы без подтверждения?

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

Но тогда, когда в папке назначения существует файл с таким же именем, я получаю этот вопрос:

Проблема в том, что у меня есть около 200 файлов, которые будут перезаписаны, и я не думаю, что нажатие Y then Enter 200 раз является правильным способом сделать это.

Итак, каков правильный путь к этому?

Вы можете сделать это yes | cp -rf myxx , или, если вы делаете это как root — ваш .bashrc или .profile имеет псевдоним cp к cp -i, большинство современных систем делают это с корневыми профилями.

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

Вы понимаете, что RHEL и CentOS пытались защитить начинающих пользователей, устанавливая псевдонимы для пользователя root, чтобы предотвратить случайную перезапись и удаление файлов?

Это -i то, что требует подтверждения при изменении или удалении существующих файлов. Поскольку расширение псевдонима происходит перед выполнением команды, даже использование —force -f коммутатора все еще требует подтверждения.

Вы можете удалить псевдоним навсегда, отредактировав /root/.bashrc файл, удалив псевдоним на время сеанса unalias cp или для одной команды, используя один из:

  • использовать полный путь /bin/cp
  • используйте кавычки «cp» или ‘cp’ вокруг команды
  • используйте ключевое слово команды, например command cp
  • избежать команды \cp

Источник

Как заставить cp перезаписывать без подтверждения

Я пытаюсь использовать команду cp и принудительно перезаписать.

Я пробовал cp -rf /foo/* /bar , но мне все равно предлагается подтверждать каждую перезапись.

16 ответов

Вы можете сделать yes | cp -rf xxx yyy , но мое чутье подсказывает, что если вы сделаете это как root — ваш .bashrc или .profile будет иметь псевдоним от cp до cp -i , большинство современные системы (в первую очередь производные RH) делают это с корневыми профилями.

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

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

Вы можете временно обойти псевдоним и использовать версию команды без псевдонима, добавив к ней префикс \ , например \cp whatever

Это не cp -i . Если вы не хотите, чтобы вас спрашивали о подтверждении, это cp -n ; Например:

Или в случае каталогов / папок:

Читайте также:  Dayz свой сервер linux

Я просто использовал unalias для удаления псевдонима «cp -i», затем сделал копию, а затем снова установил псевдоним. :

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

Если вы хотите сохранить псевдоним на глобальном уровне как есть и просто хотите изменить его для своего скрипта.

псевдоним cp = cp

А затем напишите свои последующие команды.

-n означает «не перезаписывать», но его вопрос полностью противоположен тому, на что вы ответили.

Чтобы избежать этого подтверждения, вы можете просто запустить команду cp с абсолютным путем, это позволит избежать псевдонима.

/ bin / cp назначение исходного файла

Источник

Команда 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 — не делать результирующие файлы разреженными.

    Примеры использования команды 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 , чтобы принудительно перезаписать такой файл:

    Источник

    unixforum.org

    Форум для пользователей UNIX-подобных систем

    • Темы без ответов
    • Активные темы
    • Поиск
    • Статус форума

    Решено: Копирование файлов без вопроса о замене (cp: переписать file?)

    Модератор: Bizdelnick

    Решено: Копирование файлов без вопроса о замене

    Сообщение lexikon » 21.12.2009 00:17

    Читайте также:  Ноутбук lenovo переустановка windows с флешки

    //’ /home/verlichat/mainchat.log > /home/verlichat/chat.log && /home/verlichat/pisg

    Re: Решено: Копирование файлов без вопроса о замене

    Сообщение Bizdelnick » 21.12.2009 00:32

    в консол и
    вку́пе (с чем-либо)
    в общем
    в ообще
    в течени е (часа)
    нович ок
    нюанс
    п о умолчанию
    приемл емо
    пробле ма
    проб овать
    тра фик

    Re: Решено: Копирование файлов без вопроса о замене

    Сообщение SLEDopit » 21.12.2009 00:39

    /.bashrc или /etc/bashrc или profile файлы).
    проверьте и отключите.

    Re: Решено: Копирование файлов без вопроса о замене

    Сообщение lexikon » 21.12.2009 00:43

    Re: Решено: Копирование файлов без вопроса о замене

    Сообщение broom » 21.12.2009 00:46

    Re: Решено: Копирование файлов без вопроса о замене

    Сообщение lexikon » 21.12.2009 00:48

    /.bashrc выручила
    назойливых вопросов больше нет огромное спасибо!

    Re: Решено: Копирование файлов без вопроса о замене

    Сообщение broom » 21.12.2009 00:51

    Источник

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

    Копирование файлов — одна из задач, наиболее часто возникающих перед пользователями персонального компьютера. Конечно, можно открыть файловый менеджер, войти в нужную папку и скопировать файл с помощью контекстного меню — тут не о чем говорить. Но в этой статье я хотел бы рассмотреть копирование файлов в 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 выполнит замену на новую версию:

    Читайте также:  Ping ������ ������������ ������ linux

    Сp также поддерживает специальные символы замены * и ?. Например, следующая команда скопирует все файлы, начинающиеся на test:

    Если нужно применить более сложные регулярные выражения, придётся комбинировать утилиту cp с find или egrep.

    В случае, если важно сохранить права доступа к файлу и его владельца, нужно использовать опцию -p:

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

    Будет создан файл с таким же именем и расширением .bak

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

    Копирование файлов по регулярным выражениям в Linux

    В утилите find можно применять различные условия и регулярные выражения для поиска файлов. Я уже немного писал о ней в статье как найти новые файлы в Linux. Мы можем скопировать все найденные с помощью find файлы, вызвав для каждого из них команду cp. Например, копируем все файлы в текущей директории, содержащие в имени только цифры:

    find . -name 4 -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. При переносе системных файлов в другой каталог, резервном копировании системных файлов и т.д. важно чтобы сохранились атрибуты, значения владельцев файлов и символические ссылки как они есть без какой-либо модификации.

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

    tar cf — /var | ( cd /mnt/var && tar xvf — )

    Здесь мы полностью копируем содержимое папки /var в папку /mnt/var. Так вы можете копировать папку Linux, причём абсолютно любую или даже целую операционную систему.

    Выводы

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

    Источник

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