我一直在阅读,Windows Powershell 与斜杠方向无关,因为它可以同时使用正斜杠/反斜杠作为文件路径。
出于某种原因,在我的 Windows 笔记本电脑和 HPC 集群(Linux)之间传输文件时,我假设必须将 Linux 中使用的所有正斜杠 (/) 转换为 Powershell 命令中的反斜杠 (\)。
例如,如果 HPC 集群上的文件位于 /path/file,我会执行 scp \path\file \path\destination。
显然,它一直在工作(?)但我想知道 Windows Powershell 如何知道在访问 Linux 位置时将我的反斜杠 (\)“转换”为正斜杠 (/),因为在 Linux 上正斜杠 (/) 用于文件路径。
谢谢!
答案1
PowerShell 并不“知道”另一端有一台 Linux 计算机。复制成功意味着 PowerShell 使用了一种无需知道这一点的复制方法。
这只是一个(有根据的)猜测,但方法应该是逐个子文件夹下降直到最后一个子文件夹。
对于\path\file \path\destination
,PowerShell 会将自身定位到\path
,然后定位到destination
,最后将文件复制到其中。这样,它就可以在不同的操作系统中保持斜线无关性。