$(locate nasm_shell)
ou
'locate nasm_shell'
Você pode usar backticks ''
ou $()
para executar o comando em um subshell, por exemplo:
user@host$ which df
/bin/df
user@host$ 'which df'
Filesystem 1K-blocks Used Available Use% Mounted on
...
/dev/sda1 498532 199535 268738 43% /boot
/dev/mapper/vg-home 412718256 232104076 159626276 60% /home
Se houver mais de uma linha de saída, você precisará usar grep
ou alguma outra ferramenta para selecionar a saída correta:
Por exemplo, o seguinte tem mais do que a saída que eu quero, para encontrar mkdir
user@host$ locate mkdir
/bin/mkdir
/opt/project-neon5/include/KF5/KIOCore/kio/mkdirjob.h
/usr/lib/klibc/bin/mkdir
/usr/lib/mc/fish/mkdir
/usr/share/aclocal-1.14/mkdirp.m4
/usr/share/man/man1/gvfs-mkdir.1.gz
/usr/share/man/man1/mkdir.1.gz
/usr/share/man/man2/mkdir.2.gz
/usr/share/man/man2/mkdirat.2.gz
/usr/share/zsh/functions/Completion/Unix/_mkdir
/var/lib/gems/1.9.1/doc/bundler-1.3.5/ri/Bundler/mkdir_p-c.ri
Eu só quero mkdir
que vive em /bin
. Usando grep para selecionar a saída correta, então adicionando um argumento à saída da subshell:
user@host$ $(locate mkdir | grep "^\/bin") test-directory && ls -ld test-directory
drwxrwxr-x 2 user user 4096 Nov 15 21:18 test-directory
Observe o uso da sintaxe alternativa $()