Recentemente, eu estava em uma situação em que estava dentro de uma pasta e queria cd
acessar uma pasta de subdiretório. Havia apenas uma pasta dentro dessa pasta e era um nome muito longo.
Home (I am here)
|
|
--> /reallylongnamefolder
Existe alguma maneira de entrar nessa pasta em vez de digitar:
cd reallylongnamefolder
command-line
Arian Faurtosh
fonte
fonte
cd */
oucd rea*/
se não tiver certeza, há apenas 1 subdir o tempo todo (se estiver usando o bash, você também podecd rea[TAB]
.. em outros shells, mas a maneira de expandir o nome pode variar). Se "/ reallylongnamefolder" é um caminho absoluto, a mesma coisa, mas com '/' na frente, por exemplo:cd /rea*/
Respostas:
Eu recomendaria digitar as primeiras letras e pressionar tab. O Bash possui o recurso de preenchimento automático que é realmente útil. Se for apenas o diretório no caminho atual, apenas pressionar tabirá preencher o diretório inteiro.
Digitar
cd
e pressionar tabduas vezes exibirá todas as opções no diretório atual.tab geralmente é realmente útil no bash, pois você pode acessar quase todos os executáveis com um ou dois pressionamentos de tecla.
cd *
como sugerido acima, funciona apenas se o diretório for o primeiro na lista e não estiver oculto. Se houver um arquivo em ordem alfabética antes do seu diretório, issocd
não mudará seu diretório.fonte
cd <tab>
será inteligente o suficiente.Eu acho que realmente descobri
Mas não testei se houver vários arquivos e uma pasta!
Como @Rinzwind mencionado nos comentários!
Digamos que você tenha três pastas longas:
Se você digitar a primeira letra do arquivo, pressione tab-o para completar automaticamente o nome do arquivo! COISAS DOIDAS!
Portanto, no exemplo acima, você pode digitar: t tabe ele será preenchido automaticamente o máximo que puder:
cd thisislongfolder
(digite o número você mesmo).Ou você pode fazer
cd t*1
iria levá-lo parathisislongfolder1
Obrigado Rinzwind!
fonte
cd r*r
e espero que seja o início única pasta e terminando com r.cd */
pode fazer o truquecd *
provavelmente falha mais frequentemente do que consegue.ls -d */
lista os diretórios,head -n 1
fornece o primeiro nesta lista.fonte
cd
para o primeiro diretório, não pode fazer abas.Eu tenho uma boa configuração para isso, me permite não apenas fazer o cd para ~ / somereallylongfoldername, mas também fazer o cd até mesmo quando estou na pasta /
a primeira coisa que eu uso é zsh com oh-my-zsh, isso também permite que você faça um cd sem ter que se preocupar com o caso ou mesmo sem digitar cd
abra e edite o arquivo .zshrc localizado na sua pasta pessoal, não oculto
nano ~ / .zshrc
adicione a seguinte linha na parte inferior do arquivo
export CDPATH=$CDPATH:/:/home/$USER/:/media/$USER/
Se você gosta do meu tema, também pode alterar a linha
#ZSH_THEME="robbyrussell"
paraZSH_THEME="pygmalion"
Salve e feche o arquivo e reinicie, ie. feche e reabra o shell ou simplesmente abra uma nova guia e experimente
você não pode usar a tecla tab para completar os nomes e no ZSH você nem precisa ter o caso certo, você pode digitar docu e pressionar tab e ele a transformará em ~ / Documents
fonte
Você pode alterar o diretório pelo número do inode.
primeiro encontramos o inode com
ls -il
.então
fonte
Se você precisar fazer isso em um script ou suportar diretórios com nomes não codificáveis:
Funciona se houver arquivos no diretório, independentemente de sua ordem de classificação em relação aos diretórios.
Funciona para diretórios ocultos quando
cd */
falha.Funciona se o nome não é representável no código do idioma atual quando
ls
é impresso apenas em??
vez de um nome.fonte
Estendendo a resposta do ás:
para abrir a 1ª pasta em um diretório. '1p' pode ser alterado para '2p' para o segundo diretório.
para listar apenas diretórios de um diretório pai.
fonte