Não, você não precisa usar:
cd home/directoryA/directoryB/directoryC/DirectoryD
./somefile
Você pode simplesmente executar o comando prefixando-o com seu caminho:
/home/directoryA/directoryB/directoryC/DirectoryD/somefile
Como você já está no /home/directoryA
, é possível usar o atalho de diretório atual .
e executar o comando da seguinte forma:
./directoryB/directoryC/DirectoryD/somefile
Percebi que o OP expandiu o escopo por meio de comentários em outras respostas. Aqui estão algumas informações adicionais:
- Para descobrir onde o
somefile
está localizado, use:locate somefile
. - Se
somefile
foi adicionado hoje, primeiro você precisa atualizar o banco de dados locate executandosudo updatedb
. - Quando houver várias versões de
somefile
localizadas no PATH , você poderá descobrir qual delas é executada primeiro. usewhich somefile
. - Se você deseja executar
somefile
sem especificar um nome de diretório na frente, coloque-o no caminho. Para verificar o caminho, useecho $PATH
. Locais de caminho comuns para colocarsomefile
são/usr/local/bin
(se usar poderes sudo) e/home/your_user_name/bin
(você pode ter que criar o diretório primeiro). - Você também pode adicionar
/home/directoryA/directoryB/directoryC/DirectoryD/
ao seu caminho, mas isso seria altamente incomum. No entanto, você poderia simplesmente digitarsomefile
, não importa em qual diretório você esteja e ele será executado. - É claro que
somefile
deve ser executável, o qual você define com o comando:chmod a+x /home/directoryA/directoryB/directoryC/DirectoryD/somefile