Estou escrevendo um .sh para fazer algum trabalho para mim, mas agora estou no ponto em que preciso cd para o diretório em que o arquivo /path/to/file.end está. O terminal não permite
cd /path/to/file.end
bash: cd: /path/to/file.end: Not a directory
infelizmente não há nenhuma solução alternativa que eu conheça, por isso seria bom se você pudesse ajudar!
command-line
bash
files
directory
Azsgy
fonte
fonte
cd /path/to
? Isso vai mudar o diretório para o diretório que o arquivofile.end
está em.Respostas:
Digite
cd $( dirname /path/to/file.end)
. Isso vai levar você para dentro/path/to
.Explicação:
dirname
retorna o caminho completo para um arquivo (sem o nome do arquivo que você escolheriabasename
) - ou seja,dirname /etc/apt/apt.conf.d/99update-notifier
retorna/etc/apt/apt.conf.d
$(anything)
é substituída pelo resultado do comando entre parênteses. Entãocd $( dirname /etc/apt/apt.conf.d/99update-notifier)
é executado comocd /etc/apt/apt.conf.d
Outra notação (mas antiga e desanimada) para o mesmo foi
fonte
Você não pode
cd
entrar em um arquivo. Aqui está uma (linha de comando) função que automaticamentecd
em um caminho para um determinado caminho do arquivo completo:fonte
pwd
e vírgula antes e, se você estiver definindo uma função em uma linha, precisará de um ponto e vírgula depoispwd
.echo $?
- qual é o status de saída?Se você anexar "/ .." ao nome do arquivo que o levará ao diretório correto, por exemplo
cd /path/to/file.end/..
. De qualquer maneira, funciona no Cygwin.fonte
touch test && cd /home/test/test/..
diz:bash: cd: /home/test/test/..: No such file or directory