我需要对许多目录中的许多文件执行一些操作,例如检查它们是否受密码保护。
我已经创建了一个bash脚本(fileproc.sh),我想检查一下它是否有效,所以我做了一件愚蠢的事情,只是想看看它是否有效:
#!/bin/sh
echo 'File: ' + $1
然后,如果我运行一个简单的
find . -name "*.zip" -type f
我的.zip文件列表很长。
如果我运行
find . -name "*.zip" -type f -print0 | xargs ./fileproc.sh
我只有三个文件。
我在做什么错了?
谢谢
答案 0 :(得分:0)
xargs
用于运行带有多个参数的命令,请参见man xarg
。它将find
打印的行附加到命令行,直到达到与系统有关的限制。
$1
只是第一个命令行参数,看不到第二个和后续参数。
在您的脚本中尝试
echo 'File(s): ' "$@"