说我有一个文件/templates/apple
我想要
- 把它放在两个不同的地方,然后
- 删除原件。
So, /templates/apple
将被复制到/templates/used
AND /templates/inuse
然后我想删除原来的。
Is cp
最好的方法是做到这一点,然后是rm
?或者,还有更好的方法?
我想在一行中完成所有操作,所以我想它看起来像这样:
cp /templates/apple /templates/used | cp /templates/apple /templates/inuse | rm /templates/apple
这是正确的语法吗?
您正在使用|
(管道)将一个命令的输出定向到另一个命令。您正在寻找的是&&
仅当前一个命令成功时才执行下一个命令:
cp /templates/apple /templates/used && cp /templates/apple /templates/inuse && rm /templates/apple
Or
cp /templates/apple /templates/used && mv /templates/apple /templates/inuse
总结(非详尽)bash 的命令运算符/分隔符:
-
|
管道(pipelines)标准输出(stdout
) 将一个命令转换为另一个命令的标准输入。注意stderr
无论发生什么,仍然会进入其默认目的地。
-
|&
管道两者stdout
and stderr
一个命令的标准输入到另一个命令的标准输入中。非常有用,在 bash 版本 4 及以上版本中可用。
-
&&
执行右侧命令&&
仅当前一成功时。
-
||
执行右侧命令||
只是前一个失败了。
-
;
执行右侧命令;
始终不管前一个命令是成功还是失败。除非set -e
之前被调用过,这会导致bash
因错误而失败。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)