【发布时间】:2015-10-16 19:39:52
【问题描述】:
我有一个文件,其中包含我要删除的路径列表。
在每个路径前添加rm(以生成将运行这些删除的脚本)似乎是显而易见的方法。我该怎么做?
【问题讨论】:
-
回复:“您能尽快给我回复吗?”——这实际上并没有帮助您更快地获得回复。见catb.org/esr/faqs/smart-questions.html#urgent
-
从这里开始
for row in $(cat file); rm $row; done。如果您的行中有空格,这很棘手...... -
@Oerd,这不仅仅是空间的问题——它也会扩大 glob。请参阅mywiki.wooledge.org/BashFAQ/001 了解迭代文件的最佳实践方法,
$(cat file)不是。 (然后在扩展$row时缺少引用,这会产生自己的错误;然后是每个文件调用外部rm命令的效率低下,xargs可以避免)。 -
@Oerd, ...另见mywiki.wooledge.org/BashPitfalls中的条目#1
-
感谢@Charles 指出这一点,已经多次阅读链接,只是永远无法正确理解
xargs:) 很好的答案顺便说一句!