我在不同的子目录中有一堆具有不同名称的文件。我用这些名称创建了一个 txt 文件,但我无法创建find
使用该文件进行工作。我看过关于创建列表的问题、不使用的帖子find
(虽然不明白原因)。建议?我很难举出一个例子,因为我不知道如何重现目录结构。
以下是文件名(以防格式问题)
AO-169
AO-170
AO-171
我想出的最好的办法是:
cat ExtendedList.txt | xargs -I {} find . -name {}
它显然死在它找到的第一个目录中。
我也尝试过
ta="AO-169 AO-170 AO-171"
find . -name $ta
但它抱怨find: AO-170: unknown primary or operator
如果您想问“如何在当前目录的子目录中找到具有这些名称的文件”,答案看起来像
xargs printf -- '-o\0-name\0%s\0' <ExtendedList.txt |
xargs -r0 find . -false
The -false
只是一个可爱的方式来让列表actual谓词以“... or”开头。
如果名单中的名字ExtendedList.txt
很大,如果第二个则可能会失败xargs
决定分手-o
and -name
.
选项-0
不可移植,但应该可以工作,例如在 Linux 上或任何有 GNU 的地方xargs
.
如果你能保证字符串列表ExtendedList.txt
不包含任何对 shell 有问题的字符(如单引号),您可以简单地说
sed "s/.*/-o -name '&'/" ExtendedList.txt |
xargs -r find . -false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)