xargs命令详解

来源:互联网 发布:衣服在淘宝找不到 编辑:程序博客网 时间:2024/06/14 23:45

转自:http://www.cpplive.com/html/1595.html

Linux下的xargs命令,从标准输入或者文件读取内容,按照空格或者空行将内容分割成多个参数,然后将这些参数传递给指定命令(默认echo)让其执行一次或者多次,传入的空行被忽略。该命令便于将某个命令在标准输入的执行结果作为另一个命令的执行参数,对于不支持管道操作的命令(如ls、file等)来说是一个福音。    

常用参数:

view plaincopy to clipboardprint?
  1. -a<FILE>:从FILE指定的文件中读取内容,默认从标准输入读取  
  2. -d<delim>:指定分隔符为delim,默认视空格或空行为分隔符  
  3. -i:该参数必须配合{}使用,{}代表一个参数,主要用于批处理操作  
  4. -n<m>:单次运行指定命令最多引用m个参数,多次运行,直至参数引用完毕  
  5. -p:每次执行指定命令之前先询问用户是否确实要执行  
  6. -r:如果标准输入为空,则不执行指定命令  
  7. -t:在执行指定命令之前将命令行打印到标准错误输出(stderr)  

 
应用实例:

1、演示xargs命令的-a、-n、-t参数

view plaincopy to clipboardprint?
  1. trevor@trevor-PC:~/linux/linux100$ ls  
  2. xargs-test  
  3. trevor@trevor-PC:~/linux/linux100$ cat xargs-test  
  4. This is a test for the command xargs.  
  5. trevor@trevor-PC:~/linux/linux100$ xargs -a xargs-test mkdir  
  6. trevor@trevor-PC:~/linux/linux100$ ls -l  
  7. 总用量 36  
  8. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:43 a  
  9. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:43 command  
  10. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:43 for  
  11. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:43 is  
  12. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:43 test  
  13. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:43 the  
  14. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:43 This  
  15. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:43 xargs.  
  16. -rw-r--r-- 1 trevor trevor 38 2012-01-18 14:12 xargs-test  
  17. trevor@trevor-PC:~/linux/linux100$ xargs -a xargs-test -t rm -r  
  18. rm -r This is a test for the command xargs.  
  19. trevor@trevor-PC:~/linux/linux100$ ls -l  
  20. 总用量 4  
  21. -rw-r--r-- 1 trevor trevor 38 2012-01-18 14:12 xargs-test  
  22. trevor@trevor-PC:~/linux/linux100$ cat xargs-test | xargs -t -n 2 mkdir  
  23. mkdir This is  
  24. mkdir a test  
  25. mkdir for the  
  26. mkdir command xargs.  
  27. trevor@trevor-PC:~/linux/linux100$ ls -l  
  28. 总用量 36  
  29. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:45 a  
  30. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:45 command  
  31. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:45 for  
  32. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:45 is  
  33. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:45 test  
  34. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:45 the  
  35. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:45 This  
  36. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:45 xargs.  
  37. -rw-r--r-- 1 trevor trevor 38 2012-01-18 14:12 xargs-test  
  38. trevor@trevor-PC:~/linux/linux100$ cat xargs-test | xargs -t -n 4 rm -r  
  39. rm -r This is a test  
  40. rm -r for the command xargs.  
  41. trevor@trevor-PC:~/linux/linux100$ ls  
  42. xargs-test  
  43. trevor@trevor-PC:~/linux/linux100$  

 
2、演示xargs命令的-i、-p参数

view plaincopy to clipboardprint?
  1. trevor@trevor-PC:~/linux/linux100$ ls  
  2. a command for is test the This xargs. xargs-test  
  3. trevor@trevor-PC:~/linux/linux100$ ls | xargs -i -p mv {} {}_bak  
  4. mv a a_bak ?...y  
  5. mv command command_bak ?...y  
  6. mv for for_bak ?...y  
  7. mv is is_bak ?...y  
  8. mv test test_bak ?...y  
  9. mv the the_bak ?...y  
  10. mv This This_bak ?...y  
  11. mv xargs. xargs._bak ?...y  
  12. mv xargs-test xargs-test_bak ?...n  
  13. trevor@trevor-PC:~/linux/linux100$ ls -l  
  14. 总用量 36  
  15. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:59 a_bak  
  16. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:59 command_bak  
  17. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:59 for_bak  
  18. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:59 is_bak  
  19. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:59 test_bak  
  20. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:59 the_bak  
  21. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:59 This_bak  
  22. drwxr-xr-x 2 trevor trevor 4096 2012-01-18 16:59 xargs._bak  
  23. -rw-r--r-- 1 trevor trevor 38 2012-01-18 14:12 xargs-test  
  24. trevor@trevor-PC:~/linux/linux100$  




原创粉丝点击