使用和不使用xargs查找-name会得到不同的结果

问题描述 投票:0回答:1

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

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

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

如果我运行简单

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

我有一长串的.zip文件正如预期的那样。

如果我跑

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

我只有三个文件。

我究竟做错了什么?

谢谢

linux bash shell xargs
1个回答
0
投票

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

$1只是第一个命令行参数,你没有看到第二个和后面的参数。

在你的脚本中试试

echo 'File(s): ' "$@"
© www.soinside.com 2019 - 2024. All rights reserved.