我需要对很多目录中的很多文件执行一些操作,比如检查它们是否受密码保护。
我已经创建了一个bash脚本(fileproc.sh),我想检查它是否有效,所以我做了一件愚蠢的事情,看它是否有效:
#!/bin/sh
echo 'File: ' + $1
如果我运行简单
find . -name "*.zip" -type f
我有一长串的.zip文件正如预期的那样。
如果我跑
find . -name "*.zip" -type f -print0 | xargs ./fileproc.sh
我只有三个文件。
我究竟做错了什么?
谢谢
xargs
用于运行具有多个参数的命令,请参阅man xarg
。它会将find
打印的行附加到命令行,直到达到系统相关的限制。
$1
只是第一个命令行参数,你没有看到第二个和后面的参数。
在你的脚本中试试
echo 'File(s): ' "$@"