我计划为此在 coreutils 上提交一个错误,因为这种行为是出乎意料的,并且在现实世界中没有任何实际用途......虽然它确实让我一开始就笑了,因为我什至不知道可以在文件名中创建带有通配符的文件。带有通配符的文件名有多实用?谁甚至使用这样的功能?
我最近运行了一个类似这样的 bash 命令:
ln -s ../../avatars/* ./
不幸的是,我没有添加正确数量的“../”,因此它没有向我提供信息性错误,而是创建了一个指向不存在的“*”文件的链接。我希望这样做:
ln -s "../../avatars/*" ./
因为这是处理此类文件名的正确方法。
在提交关于 coreutils 的错误之前,我想听听其他人的意见。这种行为是否有任何实际用途,或者 ln 是否应该提供有意义的错误消息?
是的,我知道可以链接到整个目录,而不是其中的每个文件,但我不希望将新创建的文件复制到旧位置。那里只有几个文件现在正在链接。
有些人甚至会说在符号链接中使用通配符是不好的做法。但是,我确切地知道目录的内容,这比手动手动执行每个文件要快得多。