首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ruby的Dir.glob不遵循符号链接

Ruby的Dir.glob方法用于匹配文件路径,但它默认不会遵循符号链接。符号链接是一种特殊类型的文件,它包含指向另一个文件或目录的路径。当使用Dir.glob方法时,默认情况下,它不会解析符号链接,而是直接匹配符号链接本身。

这种行为有时可能会导致意外的结果,因为在某些情况下,我们可能希望匹配符号链接指向的文件或目录。为了解决这个问题,我们可以使用File.realpath方法来获取符号链接所指向的真实路径,然后再进行匹配。

下面是一个示例代码,演示了如何使用File.realpath方法来解析符号链接并匹配文件路径:

代码语言:txt
复制
require 'pathname'

def glob_with_symlink(path)
  Pathname.glob(path).map do |entry|
    if entry.symlink?
      File.realpath(entry)
    else
      entry
    end
  end
end

# 使用glob_with_symlink方法匹配文件路径,包括符号链接指向的路径
files = glob_with_symlink('path/to/files/*')

# 打印匹配到的文件路径
files.each do |file|
  puts file
end

在上面的示例中,我们定义了一个名为glob_with_symlink的方法,它接受一个路径作为参数,并使用Pathname.glob方法来匹配文件路径。如果匹配到的路径是一个符号链接,我们使用File.realpath方法获取其真实路径,否则直接返回路径。

通过这种方式,我们可以确保Dir.glob方法在匹配文件路径时也会考虑符号链接所指向的路径。

关于腾讯云的相关产品和产品介绍链接地址,由于不能提及具体的云计算品牌商,建议您访问腾讯云官方网站,查找与Ruby开发相关的云计算产品和服务。腾讯云提供了丰富的云计算解决方案,包括云服务器、云数据库、云存储等,可以满足各种开发需求。您可以在腾讯云官方网站上找到详细的产品介绍和文档。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Windows 挂载磁盘错误 ‘无法遵循符号链接,因为其类型已禁用’ 解决方案

Windows 挂载远程磁盘后打开文件夹可能报错无法遵循符号链接,因为其类型已禁用,本文记录解决方案。...查询本地符号链接策略 在 cmd 命令行中执行 fsutil behavior query SymlinkEvaluation -> 本地到本地 符号链接评估为: 已启用 本地到远程 符号链接评估为...: 已启用 远程到本地 符号链接评估为: 已禁用 远程到远程 符号链接评估为: 已禁用 我情况是有两种符号被禁用,导致出现错误 重设符号链接策略 L表示本地,R表示远程 将远程到远程符号链接打开...: fsutil behavior set SymlinkEvaluation R2R:1 远程到远程 符号链接评估为: 已启用 同理关闭设为 0 将本地到远程符号链接打开: fsutil behavior...符号链接评估为: 已启用 本地到远程 符号链接评估为: 已启用 远程到本地 符号链接评估为: 已启用 远程到远程 符号链接评估为: 已启用 至此错误应该已经解决 参考资料 https://www.cnblogs.com

2.4K20

Windows 中链接、软链接符号链接、快捷方式

创建 右键 -> 创建快捷方式 hard link 硬链接符号链接原理完全不同,符号链接是指向目标路径链接,而硬链接则是指向目标数据对象链接。...symbolic link 符号链接则是将自己链接到一个目标文件或目录路径上。当系统识别到符号链接时,它会跳转到符号链接所指向目标中去,而不改变此时文件路径。...文件 符号链接(Symlink,Softlink)是对文件或目录引用,实际上符号链接本身是一个“记录着所引用文件或目录绝对或相对路径”特殊文件,通过符号链接操作都会被重定向到目标文件或目录。...对符号链接和快捷方式“读、写、遍历”等操作都会被重定向到目标文件或目录,但对它们“复制、删除、移动、配置 ACL”等操作只针对自身。...它们可以像普通文件一样操作,但所有对符号链接操作都实际作用于目标对象。符号链接对用户而言是透明符号链接看上去和普通文件和文件夹没有区别,操作方法也一模一样(更类似于 Linux 链接)。

8.5K41
  • 我对Linux里符号链接(软链接)和硬链接认识

    然后又分别建立了a链接a2,b符号链接b2 由图中即可看出区别: 1.a和a2 inode号相同,b和b2inode号却不同 2.a和a2均是普通文件 ,即以 -打头,而b2则是以l打头,说明它是一个符号链接...而同样:我们也建立了第三个符号链接,可以看到b b2 b3链接数都是1....,以及它们inode均不同,由此可以得知符号链接是单独一个文件,它里面存放内容如下图维基百科:即它文件里存放着源文件路径,所以inode不同,新建符号链接数时候链接数也不会+1 4.创建硬链接时候源文件必须存在...创建c 和c1时候发现创建失败,而符号链接则可以创建成功。只是生效。...删除符号链接源文件之后,符号链接仍然还在,只是失效了(因为所指路径文件已经被删除了)。 如下图1和2: 删除硬链接源文件a和1个硬链接a2,再cat a3发现,仍然正常。

    72130

    更新 Linux 符号链接方法命令

    UNIX 和 Linux 用户发现链接有很多用途,特别是符号链接。我喜欢使用符号链接一种方式是管理各种 IT 设备配置备份。...如上所示,@ 符号表示这些是链接。 创建一个链接 符号链接 Router 指向我 Netgear RL5000 config 目录。...这样做好处是,当对这个设备进行维护时,我只需进入 ~/Configuration/Router。 如果我决定用一个新型号替换这个路由器,使用符号链接第二个好处就很明显了。...这样,当物理设备随时间变化时,你不必持续更新任何可能管理它们进程,因为它们是在处理链接而不是实际设备目录。 更新一个链接 由于我主路由器已经改变,我想让路由器符号链接指向它目录。...-f、--force:删除目标文件(有必要,因为已经存在一个链接) -n、--no-dereference:如果链接名是一个目录符号链接,就把它当作一个正常文件 -s、--symbolic:制作符号链接而不是硬链接

    2.1K20

    Linux中移除(删除)符号链接命令

    使用 rm 和 unlink 命令就能完成移除(删除)符号链接操作。 什么是符号链接符号链接(symlink)又称软链接,它是一种特殊文件类型,在 Linux 中该文件指向另一个文件或者目录。...它类似于 Windows 中快捷方式。它能在相同或者不同文件系统或分区中指向一个文件或着目录。 符号链接通常用来链接库文件。它也可用于链接日志文件和挂载 NFS(网络文件系统)上文件夹。...1) 使用 rm 命令怎样移除符号链接文件 rm 命令是在 Linux 中使用最频繁命令,它允许我们像下列描述那样去移除符号链接。...但如果你增加这个参数,它将会删除目标目录下内容,并且它不会删除这个符号链接文件。 (LCTT 译注:这可能不是你原意。)...(删除)符号链接命令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

    4.6K21

    Windows 中链接、目录联接(软链接)、符号链接、快捷方式

    默认是创建文件符号链接,使用/D 参数则是创建目录符号链接,使用 /H 是创建硬链接,使用/J是创建目录联结,也称为软链接(soft link)。...符号链接 符号链接是将自己链接到一个目标文件或目录路径上。当系统识别到符号链接时,它会跳转到符号链接所指向目标中去,而不改变此时文件路径。...硬链接链接符号链接原理完全不同,符号链接是指向目标路径链接,而硬链接则是指向目标数据对象链接。...符号链接(Symlink,Softlink)是对文件或目录引用,实际上符号链接本身是一个“记录着所引用文件或目录绝对或相对路径”特殊文件,通过符号链接操作都会被重定向到目标文件或目录。...符号链接对用户而言是透明符号链接看上去和普通文件和文件夹没有区别,操作方法也一模一样(更类似于 Linux 链接)。

    11610

    如何更新 Linux 符号链接 | Linux 中国

    UNIX 和 Linux 用户发现链接有很多用途,特别是符号链接。我喜欢使用符号链接一种方式是管理各种 IT 设备配置备份。...如上所示,@ 符号表示这些是链接。 创建一个链接 符号链接 Router 指向我 Netgear RL5000 config 目录。...这样做好处是,当对这个设备进行维护时,我只需进入 ~/Configuration/Router。 如果我决定用一个新型号替换这个路由器,使用符号链接第二个好处就很明显了。...这样,当物理设备随时间变化时,你不必持续更新任何可能管理它们进程,因为它们是在处理链接而不是实际设备目录。 更新一个链接 由于我主路由器已经改变,我想让路由器符号链接指向它目录。...-f、--force:删除目标文件(有必要,因为已经存在一个链接) -n、--no-dereference:如果链接名是一个目录符号链接,就把它当作一个正常文件 -s、--symbolic:制作符号链接而不是硬链接

    2.7K20

    获奖+答案公布:Linux符号链接和硬链接小测试

    详细论述其中关于inode等变化。 虽然很多童鞋答案都是正确,但是获奖名单只能有三人。众多童鞋回答参见做题免费送书:关于Linux符号链接和硬链接小测试留言。...,此时a文件内容是hello $ ln a b 这里创建了一个硬链接b,b与a指向同一个inode $ ln -s a c 这里创建了一个软链接c,c文件实际内容就是a文件路径 $ rm a 删除...$ echo world > a 此时echo world又创建一个文件,文件名是a,但是此时inode已经是重新申请到,a与b已经不是硬链接关系了,但是c文件链接文件a又存在了,因此此时c文件...,这个a文件已经不是原来a文件,c文件软链接也不是原来a文件,而是最后输入world时候创建a文件。...而c文件软链接到了a文件,因此cat到就是新a文件内容。

    1K20

    在 Linux 上查找和删除损坏符号链接

    通常称它们为“符号链接”或“软链接”,符号链接是非常小文件。实际上,符号链接真正包含是它指向文件名称,通常包含路径(相对于当前位置或绝对路径)。...如果你执行 vi ref1 之类命令(其中 ref1 是符号链接名称),你将编辑 ref1 指向文件,而不是符号链接本身内容。Linux 系统知道如何使用符号链接,并且可以做正确事。...符号链接使得使用和共享文件更加容易,仅此而已。 符号链接损坏时 当一个符号链接所指向文件从系统中删除或重新命名时,符号链接将不再起作用。...rwxrwxrwx 权限是标准权限,并不反映符号链接指向文件权限。 查找损坏符号链接 find 命令有一个选项,能让你找到指向不再存在文件符号链接。...-exec test -e {} \; -print 2>/dev/null 如何处理损坏符号链接 除非你知道符号链接引用文件会被替换,否则最好方法是直接删除损坏链接

    2.6K21

    Linux下ls命令显示符号链接权限为777探索

    2.2 符号链接 如前所述,若第一个字符显示为l,说明该文件是符号链接符号链接(软链接)是一类特殊文件, 其包含有一条以绝对路径或者相对路径形式指向其它文件或者目录引用[12]。...符号链接操作是透明:对符号链接文件进行读写程序会表现得直接对目标文件进行操作。某些需要特别处理符号链接程序(如备份程序)可能会识别并直接对其进行操作。...在填入时,ls程序未对符号链接做特殊处理,由此可见,符号链接权限问题关键在于lstat()函数实现是如何填入stat结构体中st_mode。...they point to an inode), symbolic links can link anywhere (other file systems, even networked).”大意为“符号链接链接到...符号链接拥有自己inode结点,其权限是没有意义,因为应用链接目标文件权限。符号链接可以链接至任何地方,如跨文件系统,甚至网络”。

    6.6K50

    html中链接添加http(协议相对 URL)

    //www.fgba.net/static/image/common/logo.png 实际上这是可行,省略URL协议声明,浏览器照样可以正常引用相应资源,这项解决方案称为protocol-relative...如果当前页面是通过HTTPS协议来浏览,那么网页中资源也只能通过HTTPS协议来引用,否则IE浏览中就会出现"页面同时包含安全和非安全项目"警告信息: 如果使用协议相对 URL,无论你是使用...HTTPS,还是HTTP访问页面,浏览器都会以与你相同协议请求页面中资源,避免弹出这样警告信息,同时可以节省5字节数据量,何乐而不为呢?...维基百科也全面启用了这项技术,可以看看他们网页源代码。...同样,只要涉及到链接,我们都可以使用协议相对 URL: //www.fgba.net/static/js/forum.js //www.fgba.net/data/cache/style_1_common.css

    2.2K00

    C++ 链接库顺序导致符号未定义问题

    符号未定义是链接过程中常见问题,有时候很明显,有时候却很隐晦,比如链接顺序导致符号未定义问题。...这是一个典型链接顺序导致符号未定义问题了。...链接顺序gcc/g++ 在合并目标文件生成可执行文件时候会存在库依赖问题:在命令行中,如果定义一个符号库出现在引用这个符合目标文件之前,那么引用就不能被解析,链接会失败。...就是因为 –as-needed 忽略功能,会导致一些库虽然被声明链接了,实际并没有,所以也会导致其他需要用库(当然定义在其后)产生符号未定义问题。...,定位 mutex.o 符号时候当然会找不到符号定义!

    32200

    辨析 Ruby Method 与 Proc

    在其他语言函数很习以为常用法在 Ruby 中却行不通,就其原因还是不清楚这两个类区别,希望这篇文章能够帮助大家理解好 Ruby“函数”概念,做到深入浅出,与其他函数式语言融会贯通。...File.foreach('README.md').with_index do |line, line_num| puts "#{line_num}: #{line}" end # 遍历文件 Dir.glob...('*.rb') {|ruby_src| puts "found #{ruby_src}"} 上面示例演示了block两种字面量(literal)形式,非常方便简洁。...map(myinc, [4,5,6]) # => [5, 6, 7] Ruby 中与其对应是过程(Proc),与上面功能等价 Ruby 代码为: myinc = Proc.new {|num...当&符号出现在函数参数列表中时,会把其后面的参数转为 Proc,并且把转化后参数作为 block 传递给调用者。

    92820

    比较 Windows 上四种不同文件(夹)链接方式(NTFS 链接、目录联接、符号链接,和大家熟知快捷方式)

    Please select yours: 中文 English 不同链接方式 Windows Vista 开始带来了 NTFS 符号链接(Symbolic Link),Windows 2000...默认为文件 符号链接。 /H 创建硬链接而非符号链接。 /J 创建目录联接。...Link 指定新符号链接名称。 Target 指定新链接引用路径 (相对或绝对)。...当原始文件被单独删除后 硬链接依然能正常访问到文件数据。 目录联接失效,指向不存在目录。 符号链接失效,指向不存在目录。...(硬链接,软链接/符号链接,目录链接) - walterlv 另外,附我使用目录联接/符号链接一些用途: 通过 mklink 收集本地文件系统所有 NuGet 包输出目录来快速调试公共组件代码 -

    2K30

    WordPress 最终完美解决文章 固定链接ID 连续问题方案

    文章 ID 连续是很多 “强迫症” 博主烦恼,尤其是使用了文章 ID 作为固定连接之后,每篇文章 ID 并不连续,非常不好。...从原因来看,文章 ID 连续主要是因为自动保存文章、媒体、页面和其它文章类型占用了 ID 导致,网上解决方法一般是强制禁止自动草稿、不在媒体库上传媒体、建立页面等等,但这种方法会导致使用上不便利...解决方案 本文说方法也是治标不治本,但却能比较好解决链接 ID 连续这个问题。这个方法就是利用别名,自动给文章设置一个别名,别名按顺序递增,然后把固定连接设置成别名。...修改固定链接 ?...ID” 连续了,可以使用上边那个批量设置代码重新归位。

    1.8K10
    领券