使用-x和不使用xargs的find -name给出不同的结果

时间:2019-02-18 15:38:44

标签: linux bash shell xargs

我需要对许多目录中的许多文件执行一些操作,例如检查它们是否受密码保护。

我已经创建了一个bash脚本(fileproc.sh),我想检查一下它是否有效,所以我做了一件愚蠢的事情,只是想看看它是否有效:

#!/bin/sh
echo 'File: ' + $1

然后,如果我运行一个简单的

find . -name "*.zip" -type f

我的.zip文件列表很长。

如果我运行

find . -name "*.zip" -type f -print0 | xargs ./fileproc.sh

我只有三个文件。

我在做什么错了?

谢谢

1 个答案:

答案 0 :(得分:0)

xargs用于运行带有多个参数的命令,请参见man xarg。它将find打印的行附加到命令行,直到达到与系统有关的限制。

$1只是第一个命令行参数,看不到第二个和后续参数。

在您的脚本中尝试

echo 'File(s): ' "$@"