百科问答小站 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     


..




  

相关话题

  为什么显卡在内存中的映射是0b8000H? 
  Linux 为什么要对文件区分只读、只写、读写等多种打开方式,而不是直接提供读写? 
  鸿蒙之于AOSP,是否Linux之于wine,Windows之于WSL?这么多人质疑鸿蒙说明了什么? 
  一般人用 Linux 算是找虐吗? 
  为什么现在没有人开发新的OS内核? 
  Mac上的gcc和Linux上的不一样吗,为啥这段代码运行结果不同? 
  如何评价华为官方Matebook14 Linux版? 
  Linux的功能有多强大? 
  Windows NT 内核与 Linux 内核相比哪个更安全? 
  为什么 Linux 指针越界时程序会立即被中断,而 Windows 不会? 

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





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利