我不会shell,因为我自己看过文档就忘。我不在意我会不会shell,只要偶尔会用…
以一个命令的输出批量执行另一条命令
唉,本来在看docker,看的烦了发现已经有了很多的container(把它当日志文件看就好–不要真的用这去理解docker)。就想给他删除了,删除命令是 docker rm id
,查看这些东西id的命令是docker ps -a
,如图:
~ » docker ps -a apple@yangkuideMBP
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3015d440f386 ubuntu "apt-get *****" 3 weeks ago Exited (0) 3 weeks ago zealous_zhukovsky
c41226095976 ubuntu "apt-get *****" 3 weeks ago Exited (100) 3 weeks ago vigilant_kalam
26cfbd9995fe ubuntu "sudo apt*****" 3 weeks ago Created recursing_dirac
7579510db3d4 ubuntu "sudo apt-t***" 3 weeks ago Created xenodochial_tereshkova
36d6b144da23 ubuntu "apt-get *****" 3 weeks ago Exited (100) 3 weeks ago adoring_kilby
c52edc378fc3 ubuntu "apt-get *****" 3 weeks ago Exited (0) 3 weeks ago pedantic_mcclintock
970b8ed39d72 ubuntu "apt-get i*****" 3 weeks ago Exited (100) 3 weeks ago vibrant_ardinghelli
c90e4875f34b ubuntu "apt-get update" 3 weeks ago Exited (0) 3 weeks ago gallant_turing
bc4074f7749b ubuntu "bash apt-*****" 3 weeks ago Exited (126) 3 weeks ago optimistic_euclid
a4dae07e99eb ubuntu "apt-get *****" 3 weeks ago Exited (100) 3 weeks ago hungry_morse
一条一条删太麻烦,想办法一行代码删完
- 获取这些id
docker ps -a|awk 'NR>1{print $1}' # 将上面的输出用awk处理,只打印出id数据
2.步子跨小点,先把这个输出给一个变量报存res=$(docker ps -a|awk 'NR>1{print $1}')
,然后看成功没echo $res
2.循环读取,然后执行删除 echo $res|while read i;do docker rm $i;done;
NICE ! 全部删除成功。下次遇见类似的场景直接一行命令下去。
docker rm $(docker ps -aq)