>

그래서 작동합니다 :

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

내가 빠진이 명령을 다시 포맷하는 데 특정한 것이 있습니까?

  • 답변 # 1

    와이즈 비즈

    예. ssh를 통해 명령을 실행하면 한 수준의 인용문이 손실됩니다. 그래서 이것은 :

    Is there something specific with reformatting this command that I'm missing?

    되고있다 :

    find /dir/ -type f -printf "%p|%TY-%Tm-%Td|%TH:%TM|%s|%u|%U\n"
    
    

    파이프와 함께 묶인 많은 셸 명령은 무엇입니까 ( find /dir/ -type f -printf %p|%TY-%Tm-%Td|%TH:%TM|%s|%u|%U\n ). 모든 것을 작은 따옴표로 묶어이 문제를 해결할 수 있습니다 :

    |
    
    

    대신 스크립트를 stdin으로 전달하여 대신 bash에 전달하십시오.

    ssh -o StrictHostKeyChecking=no "servername" 'find /dir/ -type f -printf "%p|%TY-%Tm-%Td|%TH:%TM|%s|%u|%U\n"' > /dir/output.txt
    
    

  • 답변 # 2

    엽서에 대한 답변은 ... 접두어를 붙이고 원래 명령에 작은 따옴표를 붙입니다 :

    ssh -o StrictHostKeyChecking=no "servername" bash <<EOF > /dir/output.txt
    find /dir/ -type f -printf "%p|%TY-%Tm-%Td|%TH:%TM|%s|%u|%U\n"
    EOF
    
    
    ssh -o StrictHostKeyChecking=no "servername" 'find /dir/ -type f -printf "%p|%TY-%Tm-%Td|%TH:%TM|%s|%u|%U\n" > /dir/output.txt'

  • 이전 arch linux - 내 sshd 로그는 어디에 있습니까?
  • 다음 apache httpd - apache2 - 서버의 정규화 된 도메인 이름을 안정적으로 확인할 수 없습니다