uid=1000(dmtsai) gid=1000(dmtsai) groups=1000(dmtsai),10(wheel)
#
我不是要查自己啊!
#
因
为
id
并不是管
线
命令,因此在上面
这个
指令
执
行后,前面的
东
西通通不
见
!只
会执
行
id
!
[dmtsai@study ~]$
cut
-
d ':'
-
f 1 /etc/passwd | head
-
n 3 | xargs id
#
依
旧会
出
现错误
!
这
是因
为
xargs
一口气
½
全部的
数
据通通
丢给
id
处
理~但
id
就½受
1
个
啊最多!
[dmtsai@study ~]$
cut
-
d ':'
-
f 1 /etc/passwd | head
-
n 3 | xargs
-
n
1 id
uid=0(root) gid=0(root) groups=0(root)
uid=1(bin) gid=1(bin) groups=1(bin)
uid=2(daemon) gid=2(daemon) groups=2(daemon)
#
透
过
-
n
来处
理,一次
给
予一
个参数
,因此上述的
½
果就
OK
正常的
显
示
啰
!
范例二:同上,但是每次
执
行
id
时
,都要
询问
使用者是否
动
作?
[dmtsai@study ~]$
cut
-
d ':'
-
f 1 /etc/passwd | head
-
n 3
| xargs
-
p
-
n 1 id
id root ....
y
uid=0(root) gid=0(root) groups=0(root)
id bin ....
y
.....(
底下省略
).....
#
呵呵!
这个
-
p
的
选项
可以
让
用
户
的使用
过
程中,被
询问
到每
个
指令是否
执
行!
范例三:
½
所有的
/etc/passwd
内
的
账号
都以
id
查
阅
,但查到
sync
就
½
束指令串
[dmtsai@study ~]$
cut
-
d ':'
-
f 1 /etc/passwd | xargs
-
e'sync'
-
n 1 id
#
仔
细
与上面的案例做比
½
。也同
时
注意,那
个
-
e'sync'
是
连
在一起的,中
间没
有空格
键
。
#
上
个
例子
当
中,第六
个参数
是
sync
啊,那么我
们
下
达
-
e'sync'
后,
则
分析到
sync
这个
字符串
时
,
#
后面的其他
stdin
的
内
容就
会
被
xargs
舍
弃
掉了!
其实,在
man xargs
里面就有三四个小范例,您可以自行参考一下内容。
此外,
xargs
真的是很好
用的一个玩意儿!您真的需要好好的参详参详!会使用
xargs
的原因是,
很多指令其实并不支持管
线命令,因此我们可以透过
xargs
来提供该指令引用
standard input
之用
!举例来说,我们使用如下
的范例来说明:
范例四:找出
/usr/sbin
底下具有特殊
权
限的
档
名,并使用
ls
-
l
列出
详细属
性
[dmtsai@study ~]$
find /usr/sbin
-
perm /7000 | xargs ls
-
l
-
rwx
--
s
--
x. 1 root lock 11208 Jun 10 2014 /usr/sbin/lockdev
-
rwsr
-
xr
-
x. 1 root root 113400 Mar 6 12:17 /usr/sbin/mount.nfs
-
rwxr
-
sr
-
x. 1 root root 11208 Mar 6 11:05 /usr/sbin/netreport
.....(
底下省略
).....
#
聪
明的
读
者
应该会
想到使用『
ls
-
l $(find /usr/sbin
-
perm /7000)
』
来处
理
这个
范例!
#
都
OK
!能½
决问题
的方法,就是好方法!