我在某个时候删除了一个目录,其中有一堆链接指向其内容。我想使用unix foreach从目录中删除现在已死的链接,而不会使用其他文件/链接,但是当我执行cat thelist
foreach时,会断开空格中的所有行,在本例中允许使用文件名。有没有人知道如何将整行作为文件名保存到foreach体中?
这是情况......
filename有空格 - > down / this / path / filename有空格
产生此行为:foreach ...找不到文件名未找到未找到的空格
我尝试了各种各样的“”和{}组合,但似乎都没有取代foreach的行为。谢谢。哈雷
正如所指出的,请提供您正在使用的shell(例如bash,ksh,csh,fish)和命令语法。可以使用引用arroud var保护空间:
—
Archemar 2016年
"${file}"
foreach
?标准shell使用for
。如果您使用的是find
与-lname
定位死链接,然后xargs
是处理尴尬的文件名很简单:find {SearchDirectory} {SearchCriteria} -print0|xargs -0 rm
。在这种情况下\0
,使用而不是空格来分隔文件名,因此在名称中保留任何空格。