我升级了二进制文件youtube-dl
如下这条指令。locate
似乎找到它,但没有ls
,并且无法调用它。怎么了?
/usr/bin $ sudo apt-get remove youtube-dl
/usr/bin $ sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
/usr/bin $ sudo chmod a+rx /usr/local/bin/youtube-dl
/usr/bin $ locate youtube-dl
/usr/bin/youtube-dl
/usr/share/bash-completion/completions/youtube-dl
/usr/share/doc/youtube-dl
/usr/share/man/man1/youtube-dl.1.gz
/usr/share/zsh/vendor-completions/_youtube-dl
/var/lib/dpkg/info/youtube-dl.list
/var/lib/dpkg/info/youtube-dl.md5sums
/var/lib/dpkg/info/youtube-dl.postinst
/var/lib/dpkg/info/youtube-dl.postrm
/var/lib/dpkg/info/youtube-dl.preinst
/var/lib/dpkg/info/youtube-dl.prerm
/usr/bin $ youtube-dl --version
bash: /usr/bin/youtube-dl: No such file or directory
/usr/bin $ ls y*
yacc ybmtopbm yelp yes yuvsplittoppm yuvtoppm
答案1
locate
不是“实时”:它扫描文件系统并记住其内部数据库中的文件和位置。这就是您运行时发生的情况:
/usr/bin/youtube-dl
由于数据库尚未更新,您将获得该文件位置的过时值。您可以通过以下方式强制执行此操作:
slocate -u
答案2
您使用curl 下载到/usr/local/bin/youtube-dl
并删除了旧版本/usr/bin
。locate
不是最新的。跑步/usr/local/bin/youtube-dl
。