不那么无用的"是"bash命令:如何在每个循环中确认一个命令

Ton*_*nio 15 bash

我写了一个循环来解压缩目录中的所有zip文件.

for f in *zip
do
    unzip $f
done
Run Code Online (Sandbox Code Playgroud)

但是,我必须在每一步确认覆盖:

replace file123.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
Run Code Online (Sandbox Code Playgroud)

如何重写循环以在每个循环发送相同的命令?

Fed*_*rgi 33

精彩的极少数情况下,也许一个仍然是有用的

试试:

for f in *zip
do
    yes | unzip $f
done
Run Code Online (Sandbox Code Playgroud)

这将在每个命令上打印"y".

或者,您可以指定yes提供的字符串,例如:

for f in *zip
do
    yes A | unzip $f
done
Run Code Online (Sandbox Code Playgroud)

  • <yes>还可以提供"永不覆盖"功能,这在解压缩选项中似乎缺乏 (2认同)