所以,这有效:
find /dir/ -type f -printf "%p|%TY-%Tm-%Td|%TH:%TM|%s|%u|%U\n" > /dir/output.txt
但这不会:
ssh -o StrictHostKeyChecking=no "servername" find /dir/ -type f -printf "%p|%TY-%Tm-%Td|%TH:%TM|%s|%u|%U\n" > /dir/output.txt
通过 ssh 命令运行时,出现以下错误:
bash: %TY-%Tm-%Td: command not found
bash: %TH:%TM: command not found
bash: %s: command not found
bash: %u: command not found
bash: %Un: command not found
重新格式化我缺少的这个命令有什么特别的吗?
是的。当您通过 ssh 执行命令时,您会失去一层引用。所以这:
变成:
这是一堆用管道 (
|
) 捆绑在一起的 shell 命令。您可以通过将整个内容放在单引号中来解决此问题:或者通过将脚本作为标准输入传递给 bash:
明信片上的答案是……在原始命令前加上单引号,如下所示: