Как получить команду 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'
Другие вопросы по тегам