在目录路径中使用通配符

Ada*_*m_G 6 bash shell-script wildcards

我正在尝试编写一个 bash 脚本,其中目录的一部分是一个长的、未知的字符串。我知道目录名称的第一部分。如何在路径中组合已知字符串和通配符?截至目前,我有:

ID=$1;

IMP="adam@ocelot.cs.edu:/data/"$ID"/EER_DATA/$ID"*"/ImpostorScores.txt"
Run Code Online (Sandbox Code Playgroud)

但这通过了一个文字*.

thr*_*rig 2

有几种选择,

  1. 使用 NFS 或 FUSE-over-SSH 或其他方式在本地公开远程文件系统,然后在导出的文件系统路径上bash应用默认的FOO=/*/passwdglob。(ZSH 有一个${~spec}全局替换参数扩展,否则请参阅您的 shell 手册。)
  2. 通过 SSH 连接到远程系统,并在那里执行 glob。ssh host 'echo /*/passwd'
  3. 将转义的(或通过反斜杠或单引号以其他方式去除)全局传递到远程系统,scp host:/\*/passwd .

如果文件名在 glob 完成时和涉及该文件名(可能已更改)的任何后续步骤之间发生变化,其中一些选项很容易出现竞争条件。