Unix 使用标准输入提供的参数多次运行命令
我记得看到过一个unix命令,它从标准输入中提取行,并多次执行另一个命令,每行输入都作为参数。就我的一生而言,我不记得命令是什么,但语法是这样的:Unix 使用标准输入提供的参数多次运行命令,unix,Unix,我记得看到过一个unix命令,它从标准输入中提取行,并多次执行另一个命令,每行输入都作为参数。就我的一生而言,我不记得命令是什么,但语法是这样的: ls | multirun -r% rm % 在本例中,rm%是要多次运行的命令,-r%是一个选项,而不是用输入行替换%(我也不记得真正的选项是什么,我只是以-r为例)。complete命令将通过依次将每个文件的名称传递给rm(当然,假设当前目录中没有目录)来删除当前目录中的所有文件。multirun的真实名称是什么?该命令称为'xargs':-)
ls | multirun -r% rm %
在本例中,
rm%
是要多次运行的命令,-r%
是一个选项,而不是用输入行替换%
(我也不记得真正的选项是什么,我只是以-r
为例)。complete命令将通过依次将每个文件的名称传递给rm
(当然,假设当前目录中没有目录)来删除当前目录中的所有文件。multirun的真实名称是什么?该命令称为'xargs':-),您可以按如下方式运行它
ls | xargs echo我希望rm-f文件
该命令名为'xargs':-),您可以按如下方式运行它
ls | xargs echo我很乐意rm-f文件
谢谢!正确的完整命令应该是ls | xargs-I%rm%
不需要%
s在那里。。。我不认为。。。man 1 xargs应该给你系统上的确切味道是的,你是对的,ls | xargs rm
在这种情况下就可以了,我想当我看到之前的命令时,它更复杂了,只有部分参数是从标准中给出的,所以-I%
是必需的,经过一些实验后,看起来ls | xargs cmd
相当于cmd a b c
(其中a-c是当前目录中的文件),而xargs-I%cmd%
相当于cmd a;cmd b;cmd c
%x
在这里是一个错误的选择,因为它是由shell扩展的(至少是korn和bash shell,IIRC)。提示:避免使用%
。谢谢!正确的完整命令应该是ls | xargs-I%rm%
不需要%
s在那里。。。我不认为。。。man 1 xargs应该给你系统上的确切味道是的,你是对的,ls | xargs rm
在这种情况下就可以了,我想当我看到之前的命令时,它更复杂了,只有部分参数是从标准中给出的,所以-I%
是必需的,经过一些实验后,看起来ls | xargs cmd
相当于cmd a b c
(其中a-c是当前目录中的文件),而xargs-I%cmd%
相当于cmd a;cmd b;cmd c
%x
在这里是一个错误的选择,因为它是由shell扩展的(至少是korn和bash shell,IIRC)。提示:避免%
。