Como posso remover um comando do bash completion?

2

Para a conclusão do bash, gostaria de substituir youtube-dl por youtubedl .

Eu posso criar um alias para youtubedl , no entanto, ambos os youtube-dl com youtubedl existirão.

Primeiramente, só quero remover youtube-dl da conclusão do bash e criar uma função personalizada para youtubedl .

    
por TuxForLife 05.04.2016 / 20:18

2 respostas

1

Atualizado: Resposta revisada para esclarecer não para instalações sem pacote

Se você instalou usando a instalação manual que foi listada primeiro na página do youtube-dl github , esse método permitir que você use youtube-dl com seu nome personalizado youtubedl , sem ver youtube-dl no preenchimento automático. No seu terminal:

$ cd /usr/local/bin/

$ sudo mv youtube-dl youtubedl

Agora você pode usá-lo usando seu novo nome youtubedl , tente com o vídeo de teste:

$ youtubedl -F 'https://www.youtube.com/watch?v=BaW_jenozKc'

Você também pode atualizar no futuro:

$ youtubedl -U

Garantia

  • Versões: 2016.01.15 , renomeando e atualizando para 2016.04.05 . Veja youtube-dl --version
  • Testado apenas com o youtube-dl instalado usando as instruções de instalação manual na página do youtube-dl github , não testada com métodos de instalação de pacotes. Portanto, essa resposta pode não funcionar se o youtube-dl foi instalado com um sistema de gerenciamento de pacotes que pode ter o local de instalação codificado

Explicação

As páginas do youtube-dl github seguidas foram:

$ sudo curl https://yt-dl.org/latest/youtube-dl -o /usr/local/bin/youtube-dl
$ sudo chmod a+rx /usr/local/bin/youtube-dl
  • Isso faz o download de youtube-dl binário para /usr/local/bin .
  • Os caminhos dentro de $PATH aparecem no preenchimento automático.
  • /usr/local/bin é de fato um desses caminhos em $PATH , portanto, youtube-dl aparecerá no preenchimento automático de Bash.

Então, para renomear o que aparece no preenchimento automático de Bash, uma maneira é renomear o próprio binário. Nós visitamos a localização do binário:

$ cd /usr/local/bin/

Renomear:

$ sudo mv youtube-dl youtubedl
  • /usr/local/bin é um diretório restrito, por isso usamos sudo

O nome antigo não será mais encontrado:

$ which youtube-dl
youtube-dl not found

E agora podemos nos referir a ele pelo novo nome:

$ which youtubedl
/usr/local/bin/youtubedl

Podemos testar se ainda funciona, por exemplo, atualizar com -U :

$ youtubedl -U
Updating to version 2016.04.05 ...
Updated youtube-dl. Restart youtube-dl to use the new version.

Teste sua funcionalidade de vídeo, como recuperar formatos:

$ youtubedl -F 'https://www.youtube.com/watch?v=BaW_jenozKc' | head
[youtube] BaW_jenozKc: Downloading webpage
[youtube] BaW_jenozKc: Downloading video info webpage
[youtube] BaW_jenozKc: Extracting video information
[youtube] BaW_jenozKc: Downloading MPD manifest
[info] Available formats for BaW_jenozKc:
format code  extension  resolution note
249          webm       audio only DASH audio   47k , opus @ 50k, 57.05KiB
250          webm       audio only DASH audio   66k , opus @ 70k, 79.56KiB
171          webm       audio only DASH audio   74k , vorbis@128k (44100Hz), 89.59K
iB
140          m4a        audio only DASH audio  127k , m4a_dash container, mp4a.40.2
@128k (44100Hz), 154.06KiB

Do código-fonte update.py , linha 86:

filename = sys.argv[0]
  • Portanto, este código de atualização detecta o nome do arquivo atual do programa, permitindo que você tenha yourcustomname -U e ainda possa atualizar com êxito.
por 05.04.2016 / 20:36
0

Que tal ln -s /usr/bin/youtube-dl ~/bin/dlyoutube

    
por 07.04.2016 / 04:51