Команда cp - одна из наиболее часто используемых команд для копирования файлов и каталогов из одного места в другое в Linux. Во многих случаях она перезаписывает файлы и каталоги в месте назначения, не спрашивая подтверждения. В некоторых случаях она может запросить подтверждение перед копированием. В этой статье мы узнаем, как заставить команду cp перезаписывать файлы без подтверждения.
Как заставить команду CP перезаписывать файлы без подтверждения
Вот типичная команда cp, используемая для копирования файла из одного места в другое.
1 | cp /path/to/file /path/to/destination |
Вот пример копирования файлов из /home/data.txt в /home/project
1 | cp /home/data.txt /home/project |
Приведенная выше команда копирует и перезаписывает файлы и папки. Если вы хотите, чтобы команда cp отображала подтверждение перед перезаписью, вам нужно использовать опцию -i, чтобы запустить команду cp в интерактивном режиме.
1 | cp -i /path/to/file /path/to/destination |
Во многих системах Linux для команды cp настроен псевдоним для запуска в интерактивном режиме. Другими словами, когда вы выполняете просто команду cp, система Linux вместо этого выполнит 'cp -i'. Таким образом, хотя по умолчанию команда cp должна перезаписывать файлы и каталоги, этого не происходит из-за этого псевдонима.
Чтобы проверить все псевдонимы в вашей системе, выполните следующую команду.
1 | alias |
Если вы видите в выводе вышеприведенную команду alias, это означает, что при выполнении команды cp система Linux вместо нее выполнит 'cp -i'.
Есть несколько способов преодолеть эту проблему.
Первое решение - просто добавить обратную косую черту прямо перед командой cp, чтобы предотвратить использование системой Linux псевдонима для команды cp.
1 | \cp -r /path/to/file /path/to/destination |
Также вы можете снять псевдоним с команды cp для текущей сессии, выполнив команду unalias, как показано ниже.
1 | unalias cp |
1 | cp -r /path/to/file /path/to/destination |
Если вы хотите навсегда отключить псевдонимы для команды cp, вам нужно открыть файлы ~/. bashrc (bash) или ~/. tcshrc (tcsh), которые обычно содержат все псевдонимы в вашей системе
1 | nano ~/.bashrc |
и удалить из них следующую строку.
1 | alias cp='cp -i' |
Сохраните и закройте файл. Выполните следующую команду, чтобы применить изменения.
1 | source ~/.bashrc |
В этой статье мы узнали, как заставить команду cp перезаписывать файлы без подтверждения.