1

尝试在批处理文件中本地运行此命令会产生预期结果

find $DIR -name "*" -type f -exec ls -alo {} \; | awk '{printf "%-12s %-1s %-1s %-1s %-1s \n",$4,substr($8,20),$9,$10,$11}' | sort -k 1 -n > file_count

当我通过 ssh 远程运行批处理文件时,命令中断:

+ find /cygdrive/h/AltaroHyperVBackup -name '*' -type f -exec ls -alo '{}' ';'
+ awk '{printf "%-12s %-1s %-1s %-1s %-1s \n",$4,substr($8,20),$9,$10,$11}'
**FIND: Invalid switch**

我应该如何对批处理文件进行编码,以便它在远程调用时正确运行?

4

2 回答 2

2

或者,您也可以将其放在批处理文件的顶部附近:

导出 PATH=/bin/:/usr/bin:$PATH

这将确保根据 shellter 的正确诊断调用 Cygwin 查找,而不是 Windows 查找。

于 2013-04-15T20:58:25.090 回答
0

我发现如果你在 find 周围加上引号,它会起作用。将命令的第一部分设为:

ssh NODE "find $DIR -type f -exec ls -alo {} \\; "

我去掉了 -name "*" 因为我认为这是多余的。

于 2012-12-20T23:06:11.047 回答