gpt4 book ai didi

shell - 在 ubuntu 上创建符号链接(symbolic link)时,我有时会得到一个奇怪的结果

转载 作者:行者123 更新时间:2023-12-04 19:19:23 28 4
gpt4 key购买 nike

我正在尝试为目录中的所有文件创建一堆符号链接(symbolic link)。似乎,当我在 shell 中手动键入这个命令时,它工作得很好,但是当我在 shell 脚本中运行它,甚至使用向上箭头重新运行它时,我遇到了以下问题。

$ sudo ln -s /path/to/my/files/* /the/target/directory/

这应该在/path/to/my/files 中创建一堆符号链接(symbolic link),如果我在手动中键入命令,它确实会这样做,但是,当我从 shell 脚本运行命令或使用向上箭头重新 -运行它我在/the/target/directory/中得到一个名为 * 的符号链接(symbolic link),因为链接名称实际上是“*”,然后我必须运行
$ sudo rm * 

删除它,这对我来说似乎很疯狂。

最佳答案

当您在脚本中运行该命令时,/path/to/my/files 中是否有任何文件? ?如果不是,则默认情况下,通配符没有可扩展的内容,也不会被替换。你最终得到了文字“*”。您可能想查看 shopt -s nullglob并运行 ln像这样的命令:

shopt -s nullglob
sudo ln -s -t /the/target/directory /path/to/my/files/*

关于shell - 在 ubuntu 上创建符号链接(symbolic link)时,我有时会得到一个奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25772406/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com