【问题标题】:A script to ssh into a remote folder and check all files?用于 ssh 到远程文件夹并检查所有文件的脚本?
【发布时间】:2009-11-02 18:47:52
【问题描述】:

我设置了一个公钥/私钥对,因此我可以 ssh 到远程服务器而无需登录。我正在尝试编写一个 shell 脚本,该脚本将列出远程服务器上特定目录中的所有文件夹.我的问题是:如何指定远程位置?这是我得到的:

 #!/bin/bash

for file in myname@example.com:dir/*
do
if [ -d "$file" ]
then
echo $file;
fi
done

【问题讨论】:

    标签: bash shell


    【解决方案1】:

    试试这个:

    for file in `ssh myname@example.com 'ls -d dir/*/'`
    do
        echo $file;
    done
    

    或者简单地说:

    ssh myname@example.com 'ls -d dir/*/'
    

    解释:

    • ssh 命令在主机名之后接受可选命令,如果提供了命令,它会在登录时执行该命令,而不是登录 shell; ssh 然后简单地将命令中的标准输出作为它自己的标准输出传递。这里我们只是传递 ls 命令。
    • ls -d dir/*/ 是让 ls 跳过常规文件并仅列出目录的技巧。

    【讨论】:

    • 嗨,有没有办法添加一个 awk 来只获取文件名?我有点坚持,因为这个命令:ssh ${SSH_USER}@${SSH_HOST} 'ls -l /path/to/dir/ | awk "{print $9}"' 中的文件 do... 似乎不起作用....谢谢 :)
    猜你喜欢
    • 2013-03-14
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 2015-04-01
    • 1970-01-01
    • 2012-06-25
    • 2023-01-23
    相关资源
    最近更新 更多