【问题标题】:find: paths must precede expression: find -namefind:路径必须在表达式之前:find -name
【发布时间】:2018-06-14 17:49:27
【问题描述】:
[root@clearsee-single ~]# sshpass -p bagabu ssh -q root@localhost find /opt/ -iname '*.log*' | xargs cp '/tmp/'
find: paths must precede expression: MSTRInstaller.log
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

请指教

【问题讨论】:

  • 为什么用 Python 标记它?为什么它甚至在堆栈溢出而不是超级用户或 Unix 上?你只是问如何使用ssh 命令。
  • 我正在尝试执行以下命令: def logger(src,dst): output_csadmin = subprocess.Popen(['sshpass', '-p', 'bagabu', 'ssh', ' -q'、'root@localhost'、'find'、src、'-iname'、'.log'、'|'、'xargs'、'cp'、'/tmp/Snapshot /'+dst], stdout=subprocess.PIPE)
  • 在 linux CLI 上得到同样的错误

标签: shell ssh find


【解决方案1】:

ssh 使用 system(3) 语义而不是 execve(2) 语义。

也就是说,需要加一层转义:

sshpass -p bagabu ssh -q root@localhost "find /opt/ -iname '*.log*'"

【讨论】:

    猜你喜欢
    • 2014-02-13
    • 2018-05-09
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多