百科问答小站 logo
百科问答小站 font logo



如何用 Linux 命令快速查询一个符号链接最终指向的文件? 第1页

  

user avatar   zorrolang 网友的相关建议: 
      

遇到这种问题,一个正常的具有自主学习能力的人的行为是这样的:

  • 首先用搜索引擎搜索问题关键字

比如google "linux get path of symlink",(下面是我当前的搜索结果):

如果你说我没有科学上网的方法,访问不到google,那用微软的bing.com等搜索引擎也行,这个不墙(下面是我当前的搜索结果):

(别问我为什么不用某度搜索技术类问题,我是不是不爱国,不支持国产?我拒绝回答)

  • 然后从搜索结果里找比较符合自己问题的比较靠谱的条目,点开阅读

即使我无脑打开我上面这两个搜索结果的第一个链接,它们都指向同一个页面,打开看是这样的:

我们几乎一眼可以看到"readlink"命令这个关键字,同时还提到了realpath。但是我们不能对于网上不名来源的“知识”无脑的照搬,我们需要通过自己一定量的调研确认信息的真实可靠性。

  • 接下来阅读readlink的权威文档,了解readlink的细节信息,以及上面示例中给出的命令的明确含义。甚至你可以再用搜索引擎搜索readlink关键字获取更多信息。
       # man readlink  NAME        readlink - print resolved symbolic links or canonical file names ... DESCRIPTION        Note realpath(1) is the preferred command to use for canonicalization functionality.         Print value of a symbolic link or canonical file name         -f, --canonicalize               canonicalize by following every symlink in every component of the given name recursively; all but the last component must exist         -e, --canonicalize-existing               canonicalize by following every symlink in every component of the given name recursively, all components must exist         -m, --canonicalize-missing               canonicalize by following every symlink in every component of the given name recursively, without requirements on components existence ...     

Linux系统过通过man readlink直接查看readlink的文档,我们从中了解到"-f"选项的意思,以及和其相似的-e, -m选项的意思,以及下面更多选项可供我们根据我们遇到的具体问题进行选择。

同时我们还看到一句关于realpath的提示:"Note realpath(1) is the preferred command to use for canonicalization functionality." 结合你在搜索页中看到的信息,综合起来可以大概知道realpath可能是新开发的,比readlink更适合"canonicalization functionality",但是如果你使用特别古老的系统,那么你最好注意一下自己的系统里是否有realpath,如果有就推荐使用,如果没有就用readlink。当然你也可以觉得readlink的兼容性更好些,总之这是你获得一定量的信息后的自我判断。

  • 最后通过你自己的学习和调研,得出你所面对问题的一个合适的解法

比如使用"readlink -f $filename",或者使用realpath。或者适合你所面对的问题的其它合适的方法来follow symlink。

如果通过很多研究学习你仍然对一些深入的地方产生问题,而找不到答案。这时候将你的问题以及你发现问题的过程详细的描述出来,到靠谱的地方提问。比如你读了上面的文档,你发现文档中一直提到“canonical”(或"canonicalization", "canonicalize")这个词。

那这个时候你就应该问自己,"canonical file name"是指什么?单从英语单词的字面意思“标准的文件名”很难知道它具体指什么,那到底什么样的文件名是“canonical”的,什么样的不是?如果你产生这样的提问,那至少说明你迈开了主动学习和思考的第一步了。这时候你就需要对这个问题进行求知。哪怕你把这样的问题拉上来问,我觉得都比这个问题的含金量高一些。当然,你可以直接通过搜索引擎搜索关键字"canonical file names",去看看能不能找到问题的一些合理解释。比如你通过阅读一些搜索结果,了解到这个"canonical file names"针对的是像:

       /foo/bar/aaa/bbb/../../aaa/ccc/../../xxx/file     

这样的路经名来说的,这种就可以理解为非"canonical"的情况,为了"canonicalize(标准化)"这样的路径,就需要用到readlink的"-f, -e, -m"选项了。那应该用哪个呢?就需要你对这三个选项的说明仔细的阅读。很明显我上面那个路径从头到尾都是胡乱写的,我的系统里根本没有这个路径里的任何一个,所以为了"canonicalize"这样一个路径,"-m"选项才是合适的(如果你使用别的选项大概率你什么也得不到):

       $ readlink -m /foo/bar/aaa/bbb/../../aaa/ccc/../../xxx/file /foo/bar/xxx/file     

到此你不光了解了你的问题的一些解决方式,还对解决方式有了一些深入的了解。

不管你从网上得到什么回答,都要保持怀疑和求索的态度(这里的怀疑不是让你抬杠,是让你对自己的知识储备负责,不用你对其它不相干的成年人负责),不能无脑的照单全收。任何人说出来的话都是有局限性和片面性的。


user avatar   mai-wen-xue-67 网友的相关建议: 
      

用 ls -la 就好了。


       [root@dad5600 ~]# ls -la /usr/lib64/chromium-browser/libffmpeg.so lrwxrwxrwx 1 root root 28 Jan  8 10:35  /usr/lib64/chromium-browser/libffmpeg.so -> /usr/share/code/libffmpeg.so  [root@dad5600 ~]#       




Chromium 浏览器不能播放直播视频怎么办?no valid sources for this video - How to watch ****hub video with Chromium Browser


解决办法很简单。


就是建立一个符号链接,也被称为符号链接或软链接。

这是一种特殊类型的文件,指向另一个文件或目录。


下面将用一条 ln 命令来创建符号链接指向 CODEC 视频解码器 libffmpeg.so:

# ln -s /usr/share/code/libffmpeg.so /usr/lib64/chromium-browser/libffmpeg.so


就这么简单的操作, 就可以让不能正常播放直播视频Chromium 浏览器正常了。





其他测试链接

       https://www.bbc.com/news/av/newsbeat-53818567       



当然, FFMPEG 都没有安装的话, 可以提前用以下命令行


       dnf -y install x265 dnf -y install x264 dnf -y install ffmpeg dnf groupinstall multimedia -y    [root@dad5600 ~]# dnf -y install x265 Last metadata expiration check: 1:47:48 ago on Mon 29 Nov 2021 06:57:42 AM PST. Package x265-3.5-2.fc35.x86_64 is already installed.  [root@dad5600 ~]# dnf -y install x264 Last metadata expiration check: 1:47:52 ago on Mon 29 Nov 2021 06:57:42 AM PST. Package x264-0.163-2.20210613git5db6aa6.fc35.x86_64 is already installed.  [root@dad5600 ~]# dnf -y install ffmpeg Last metadata expiration check: 1:48:07 ago on Mon 29 Nov 2021 06:57:42 AM PST. Package ffmpeg-4.4.1-1.fc35.x86_64 is already installed.     



SEE ALSO

       https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Win_x64/949412/ https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html     


..




  

相关话题

  有哪些让人相见恨晚的 MATLAB 命令? 
  为什么Linux用户用sudo命令而不直接使用root用户? 
  用 VS Code 替代 Vim 可行吗? 
  选用什么云服务器做编程学习比较好? 
  操作系统内核态和用户态切换落实到代码层面和运行层面的本质是什么? 
  为什么普及 Linux 桌面操作系统这么难呢? 
  基于KDE修改的桌面环境为什么很少见? 
  相同的硬盘条件下,ext4能存储比NTFS更多的文件吗? 
  Mac上的gcc和Linux上的不一样吗,为啥这段代码运行结果不同? 
  国家为什么要把国企等企业电脑全部换成Linux环境?能不能从专业的角度分析一下? 

前一个讨论
如何看待「上火」这种情况?真的用西医的角度解释不了吗?
下一个讨论
西医有上火这种说法的吗,例如吃辣椒为什么会长痘痘,用西医又应该怎么解释这种身体反馈?





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利