使用 ssh 检查远程主机上是否存在文件

2024-03-08

我想检查远程主机上是否存在某个文件。 我试过这个:

$ if [ ssh user@localhost -p 19999 -e /home/user/Dropbox/path/Research_and_Development/Puffer_and_Traps/Repeaters_Network/UBC_LOGS/log1349544129.tar.bz2 ] then echo "okidoke"; else "not okay!" fi
-sh: syntax error: unexpected "else" (expecting "then") 

除了上面的答案之外,还有一种简写方法:

ssh -q $HOST [[ -f $FILE_PATH ]] && echo "File exists" || echo "File does not exist";

-q是安静模式,它将抑制警告和消息。

正如 @Mat 提到的,这样的测试的一个优点是您可以轻松地更换-f对于您喜欢的任何测试操作员:-nt, -d, -s etc...

测试操作员: http://tldp.org/LDP/abs/html/fto.html http://tldp.org/LDP/abs/html/fto.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ssh 检查远程主机上是否存在文件 的相关文章

  • 设置 Pyenv 的路径

    我正在尝试在我的服务器中设置 Pyenv 的加载路径 bashrc file 我正在关注这个tutorial https realpython com intro to pyenv 它要求我们在哪里设置pyenv到加载路径 然而 在我的 b
  • 如何使 case 语句匹配数字范围?

    我正在运行一个列号范围为 0 50 的开关案例 现在每个案例都支持离散列号 我观察到它的失败 这是代码 i 10 a 1 b 0 65 if a b then case i in 1 2 5 echo Not OK 9 10 12 echo
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • 此 bash 命令在 Makefile 中未正确运行

    在 Makefile 里面我有这样的 release version poetry version cut f2 d echo release version 如果我运行 我的终端中的语句将毫无问题地运行 gt version poetry
  • 如何以编程方式从Linux中的进程名称获取进程ID

    在我的项目中 我们使用 ACE 自适应通信环境 中间件来编写可在 Windows 和 Linux 上运行的独立于操作系统的代码 要求是从进程名称中获取进程 ID 由于 ACE 不支持这一点 因此我们必须使用特定于平台的宏来分离 Window
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • 将“npm run start”的输出写入文件

    我想捕获的输出npm run start在一个文件中 我遇到了大量错误 我想更好地控制如何筛选输出 当我尝试时 npm run start gt log txt 我得到一个非常简短的文件 8 行 其结尾为 34m 39m 90m wdm 3
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 目录 * 和文件顺序

    我需要将目录中的所有文件连接到一个文件 但具有指定名称的文件必须位于输出的顶部 只是在做cat gt result将按字母顺序连接所有文件 有什么办法告诉猫放置文件vars css或任何其他输出的开头 现在我只是重命名文件需要首先000 f
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • 如何显示 zsh 函数定义(如 bash“type myfunc”)?

    如何在 zsh 中显示函数的定义 type foo没有给出定义 在bash中 bash function foo echo hello bash foo hello bash type foo foo is a function foo e
  • 无法使用 git 配置文件进行 ssh

    我知道它被问了很多次 但我无法得到我的问题的答案 我正在尝试使用配置文件 ssh 到系统 配置文件是 Host qa HostName 10 218 70 345 User user IdentityFile C Users bean ss
  • Docker:处理 tar 文件时出错(退出状态 1):设置枢轴目录时出错:不是目录

    我是 Docker 新手 不知道是什么原因导致此错误或如何诊断它 任何有关此问题的具体帮助或有关首先检查何处以诊断此类问题的提示将不胜感激 我的 Dockerfile FROM java 8 Install maven RUN apt ge
  • 如何在lua中获取shell脚本的返回码?

    我正在lua中执行一个脚本 os execute sh manager scripts update system sh f 我想获得脚本的输出 如果退出状态为 7 则返回 7 I tried local output os execute
  • shell_exec 的输出被截断为 100 个字符

    当在 shell 中运行以下命令时 curl F file filename http 192 168 0 1 产生以下输出 Accuracy 0 0 1 classification Accuracy 0 0 1 classificati
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • 为什么我不能将 sed 的输出重定向到文件

    我正在尝试运行以下命令 someprogram tee dev tty sed s 2 gt output file 但当我去查看时 该文件始终是空白的 如果我删除 gt output file从命令末尾 我可以看到 sed 的输出 没有任
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • GoLang ssh:尽管将其设置为 nil,但仍出现“必须指定 HosKeyCallback”错误

    我正在尝试使用 GoLang 连接到远程服务器 在客户端配置中 除了用户和密码之外 我将 HostKeyCallback 设置为 nil 以便它接受每个主机 config ssh ClientConfig User user HostKey
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte

随机推荐

  • 如何在 macOS 沙盒环境中从 C++ 运行 AppleScript 而不会侵犯权利

    我正在尝试使用AppleScript来控制ApplePhotos来自 QT C 应用程序中的应用程序 该应用程序必须在 macOS App Store 所需的沙箱环境中运行 我尝试通过 QProcess 启动来运行 AppleScripto
  • 如何使 CDT/Eclipse 与 C++11 线程一起工作?

    我尝试在 Eclipse 中测试 C 11 线程的示例 但我在运行程序时收到此消息 抛出 std system error 实例后调用终止 什么 不允许操作 我的系统 ubuntu gcc 4 7 Program include
  • Ksoap2 Android - 如何为复杂对象的子属性指定命名空间?

    我正在尝试使用 KSoap2 Android 将复杂对象上传到 WCF Web 服务 但执行此操作时遇到一些困难 当我使用SoapUI并手动填写数据时 我已经成功调用了Web服务 成功的SoapUI生成的请求如下
  • 错误 - Jenkins 检测到正在运行多个实例

    我正在将 Jenkins 作为 Windows 服务运行 一切都很好 突然从今天中午开始 我在打开它时开始看到以下错误 Jenkins 检测到您似乎正在运行多个实例 Jenkins 共享相同的主目录 这 詹金斯非常困惑 你可能会遇到奇怪的情
  • 构建期间生成 T4 代码,自定义程序集参考

    我有一个 T4 模板 可以处理项目中的多个 tt 文件 我还定义了一些自定义类来帮助完成代码转换过程 lt template language C hostspecific True debug True gt lt output exte
  • 应该使用哪个:数组与链表?

    我计划实现一个有界队列而不使用Queue
  • Google Cloud 公共主机名

    是否有任何解决方案可以像其他云平台一样在谷歌云中获取公共主机名 目前机器名称是 计算机名 c googleprojectid internal 但我想要类似在亚马逊或Azure中的东西 计算机名 cloudapp net 您可以使用谷歌云D
  • 选择没有任何类的元素[重复]

    这个问题在这里已经有答案了 我需要通过 jQuery 选择器找到页面中没有类的所有跨度 Example span class Cool do not found me span span me me take me please span
  • Azure Functions - 导入自定义节点模块

    我正在尝试使用 Azure Functions 我正在尝试在我的函数中使用第三方节点模块 但是 我一直无法弄清楚如何导入它 id aaaaaaaa bbbb cccc dddd eeeeeeeeeeee requestId aaaaaaaa
  • Django 测试:测试表单字段的初始值

    我有一个观点 应该根据 GET 值为表单字段设置初始值 我想测试一下 我目前正在使用Django的测试客户端 http docs djangoproject com en dev topics testing module django t
  • 是否有命令行的版本控制系统抽象?

    现在 如此多的小型开源项目通过其版本控制系统 发布 我有数十个经常需要的存储库 通常位于多台计算机上 我正在寻找某种方法来轻松管理这个问题 如果我自己设计它 我将有一个列出所有远程存储库的文件 以及一个自动从它们中提取的命令行客户端 这个或
  • Express & Handlebars 的全球属性

    我使用 Handlebars 使用express3 handlebars 作为模板 使用 Passport 在 NodeJS 应用程序中进行身份验证 一切都很好 但我想知道是否有一种方法可以将 Passport 创建的 req user 对
  • 准备卸载,就像 Inno Setup 中的准备安装页面一样

    我需要检查多个 exe 文件是否正在运行 通过安装程序安装 然后提示用户关闭它们 如果它们正在运行 如果没有则取消卸载过程 有没有办法在安装中为卸载程序提供类似 准备 页面之类的内容 或者我该如何实施这样的检查 甚至一个消息框也将是完美的
  • Shapefile 到 TopoJSON 转换问题

    I m trying to convert a shapefile to GeoJSON and then to TopoJSON as described in Let s Make a Map http bost ocks org mi
  • 删除最后一次出现的字符

    A 今天在 talkstats com 上发现了这个问题 http www talkstats com showthread php 36897 regular expressions其中发布者想要使用正则表达式删除字符串的最后一个句点 而
  • 刷新jsp文件时线程锁定

    在重负载下 当 GZipping 和解压缩 JSP 文件时 我看到很多线程被锁定 线程转储如下所示 似乎来自大小为 14Kb 的 header jsp http 0 0 0 0 8080 304 daemon prio 3 tid 0x00
  • ASP.NET 页面上的 MS SQL 超时,但 SSMS 中没有

    当存储过程在我们的 ASP NET 页面之一上执行时 它在 SQL Server 上超时 但出现异常Timeout expired The timeout period elapsed prior to completion of the
  • 在 Python 中使用带有正则表达式的 OR 语句时防止列表中出现空元素

    我正在使用正则表达式从网站编译价格 PriceFinder re compile lt n s b d d 2 lt lt FF0000 gt b d d 2 lt Price re findall PriceFinder str soup
  • Cypher - 删除具有特定值的所有属性

    我正在寻找一种方法来删除数据库中任何节点的每个属性 使用 Cypher 具有特定值 Context我从关系表中获取了一个包含大量 NULL 值的 csv 批量文件 LOAD CSV将它们作为价值观 删除它们 用 csv 文件中的空 替换它们
  • 使用 ssh 检查远程主机上是否存在文件

    我想检查远程主机上是否存在某个文件 我试过这个 if ssh user localhost p 19999 e home user Dropbox path Research and Development Puffer and Traps