Я обновил бинарный файл 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
Вы загрузили с помощью curl в /usr/local/bin/youtube-dl
и удалили старую версию из /usr/bin
. locate
не актуален. Запустите /usr/local/bin/youtube-dl
.
locate
не "в реальном времени" :он сканирует файловую систему и запоминает файлы и местоположения в своей внутренней базе данных. Вот что происходит с вами здесь, когда вы бежите:
/usr/bin/youtube-dl
Вам предоставлено устаревшее значение местоположения этого файла, так как база данных еще (не была )обновлена. Вы можете форсировать это с помощью:
slocate -u
все подробности:https://ss64.com/bash/locate.html