Как получить команду yes для принудительной перезаписи и для новых строк?
Я хотел бы, чтобы cp запрашивал перед перезаписью, поэтому я использую -i.
(Иногда я могу использовать псевдоним для cp или аналогичный, поэтому cp всегда происходит с -i).
Я могу сказать, перезаписать все. Я знаю, что это по умолчанию, но так как я использую -i
Я не вижу этого.
Я хочу легко сделать так, чтобы это делало "да" для всех или "нет" для всех.
Я не спрашиваю, как обойти псевдоним, я хочу -i.
Вот моя попытка заставить да, учитывая -i.
~$ mkdir test1
~$ cd test1
~/test1$ mkdir smalls
~/test1$ touch a.a
~/test1$ touch b.b
~/test1$ cp -i ?.? smalls
~/test1$ cp -i ?.? smalls
overwrite smalls/a.a? (y/n [n]) y
overwrite smalls/b.b? (y/n [n]) y
~/test1$ yes|cp -i ?.? smalls
overwrite smalls/a.a? (y/n [n]) overwrite smalls/b.b? (y/n [n]) ~/test1$
~/test1$
~/test1$ yes ''|cp -i ?.? smalls
overwrite smalls/a.a? (y/n [n]) not overwritten
overwrite smalls/b.b? (y/n [n]) not overwritten
~/test1$
Так что мне удается заставить всех "у", но тогда я не получаю новых строк.
Когда я пытаюсь yes ''|
тогда это не посылает да.
Я также хотел бы быть в состоянии передать 'n'/'нет' тоже.
И у меня может быть много файлов, поэтому я не собираюсь вручную вводить 'y' или 'n' для каждого файла.
Я не против решения, которое не включает команду "да".
2 ответа
Вы можете использовать «да |» перед вашим кодом.
yes | cp -i ?.? smalls
Множество способов обойти псевдоним для использования родного cp
:
- Используйте встроенную команду:
command cp
- Используйте полный путь к команде:
/bin/cp
- Добавьте \ в любом месте имени команды, например:
\cp
- Цитировать команду:
"cp"
или же'cp'