假设我想使用 scp 通过网络运行程序或传输文件,我创建了一个屏幕并使用 * 在屏幕中运行这些命令,以指示我希望该命令应用于该文件夹中的所有文件。该命令是否仅适用于执行该命令时存在的文件,还是适用于我在执行该命令后移动/复制到同一文件夹中的文件?
小智 5
我猜他创建了一个屏幕会话并触发了一个长时间运行的命令,如 scp 或 ftp 文件夹中的一堆文件。在上传或下载运行时,他会向源文件夹/服务器添加更多文件。
Bash(您可能用来运行命令的 shell)只会在执行该命令时存在的那些文件上执行该命令,因为该*字符被视为一个模式并被与该模式匹配的文件名替换。
看 man bash
路径名扩展
分词后,除非设置了 -f 选项,否则 bash 会扫描每个单词中的字符 *、? 和 [。如果出现这些字符中的一个,则将该单词视为一个模式,并替换为与该模式匹配的按字母顺序排序的文件名列表。