尝试在批处理文件中本地运行此命令会产生预期结果
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**
如何对批处理文件进行编码,以便在远程调用时正确运行?
答案 0 :(得分:2)
或者,您也可以将它放在批处理文件的顶部:
export PATH = / bin /:/ usr / bin:$ PATH
根据shellter的正确诊断,这将确保Cygwin发现而不是Windows发现。
答案 1 :(得分:0)
我发现如果你在找到它的工作之前加上引号。将命令的第一部分作为:
ssh NODE "find $DIR -type f -exec ls -alo {} \\; "
我摆脱了-name“*”,因为我认为这是多余的。