我需要检查文件夹中是否至少将一个罚款(符号链接)链接到特定文件。如果是,请打印字符串"OK",否则打印"NO"
destination_folder="/home/my_folder"
symbolik_link="script.rb"
es)文件夹的"ls -al":
lrwxrwxrwx 1 test test 49 Nov 27 16:09 ruby_test1.rb -> ../test/calculator.rb
lrwxrwxrwx 1 test test 49 Nov 27 16:09 ruby_test2.rb -> ../test/sum.rb
lrwxrwxrwx 1 test test 49 Nov 27 16:09 ruby_test3.rb -> ../test/test.rb
结果:"否"
es)文件夹的"ls -al":
lrwxrwxrwx 1 test test 49 Nov 27 16:09 ruby_test1.rb -> ../test/calculator.rb
lrwxrwxrwx 1 test test 49 Nov 27 16:09 ruby_test2.rb -> ../test/sum.rb
lrwxrwxrwx 1 test test 49 Nov 27 16:09 ruby_test3.rb -> ../test/script.rb
结果:"正常"
一开始
我误解了你的问题。这是一个新的尝试。
首先,您可以检查文件是否是带有File.symlink?(file)
的符号链接。
我将假设符号链接指向与原始文件相同的路径就足够了。
要"关注"符号链接,您可以使用 Pathname#realpath
。
这样:
require 'pathname'
wanted_file_path = File.expand_path('./lib/foo.rb')
directory = Dir.new('.')
found = directory.entries.any? do |entry|
if File.symlink?(entry)
Pathname.new(entry).realpath.to_s == wanted_file_path
end
end
if found
puts "Found a matching symlink"
else
puts "No matching symlink found"
end