Come si effettua il cd nella prima cartella disponibile senza digitare il nome?

23

Recentemente ero in una situazione in cui ero all'interno di una cartella e volevo cd in una cartella di sottocartelle. C'era solo una cartella, all'interno di questa cartella ed era un nome molto lungo.

Home (I am here)
 |
 |
  --> /reallylongnamefolder

C'è un modo di entrare in quella cartella invece di digitare:

 cd reallylongnamefolder
    
posta Arian Faurtosh 24.04.2014 - 20:20

7 risposte

36

Consiglierei di digitare le prime lettere e premere tab . Bash ha una funzione di completamento automatico che è davvero utile. Se è solo directory nel percorso corrente, basta premere scheda riempirà l'intera directory.

Inserendo cd e premendo tab due volte verranno visualizzate tutte le opzioni nella directory corrente.

La scheda è generalmente molto utile in bash dato che hai quasi tutti gli eseguibili accessibili a uno o due tasti.

cd * come suggerito sopra funziona solo se la directory è prima nell'elenco e non è nascosta. Se c'è un file in ordine alfabetico prima della tua directory, questo cd non cambierà affatto la tua directory.

    
risposta data masozravapalma 24.04.2014 - 20:35
12

Penso che in realtà l'ho capito davvero

cd * 
cd */

Ma non l'ho provato se ci sono più file e una cartella!

Come @Rinzwind menzionato nei commenti!

Supponiamo che tu abbia tre cartelle lunghe:

 /thisislongfolder1
 /thisislongfolder2
 /thisislongfolder3

Se digiti la prima lettera del file, poi premi tab completerà automaticamente il nome del file! CRAZY STUFF!

Quindi nell'esempio sopra, puoi digitare: t tab e completerà automaticamente il più possibile: cd thisislongfolder (quindi scrivi il numero tu stesso).

Oppure puoi fare cd t*1 per portarti in thisislongfolder1

Grazie Rinzwind!

    
risposta data Arian Faurtosh 24.04.2014 - 20:21
8
cd $(ls -d */|head -n 1)

ls -d */ elenca le directory, head -n 1 dà il primo in questo elenco.

    
risposta data ace 25.04.2014 - 12:12
1

Ho una bella configurazione per questo mi permette non solo di andare su cd ~ / somereallylongfoldername ma anche di cd lì anche quando sono nella / cartella

la prima cosa che uso è zsh con oh-my-zsh questo ti permetterà anche di fare cd senza preoccuparti del caso o anche senza digitare cd

  1. installa git e zsh
% Bl0ck_qu0te%
  1. installa Oh My ZSH
% Bl0ck_qu0te%
  1. Cambia la shell predefinita in ZSH
% Bl0ck_qu0te%

apri e modifica il tuo file .zshrc che si trova nella tua cartella Inizio, non è nascosto

nano ~ / .zshrc

quindi aggiungi la seguente riga in fondo al file  % Co_de%

Se ti piace il mio tema puoi anche cambiare la riga export CDPATH=$CDPATH:/:/home/$USER/:/media/$USER/ in #ZSH_THEME="robbyrussell"

Salva e chiudi il file, quindi riavvia ie. chiudi e riapri la shell oppure apri una nuova scheda e provalo

non puoi usare il tasto tab per completare i nomi e in ZSH non devi nemmeno avere il caso giusto puoi digitare docu e premere tab e lo trasformerà in ~ / Documents

    
risposta data zeitue 30.04.2014 - 04:27
0

Estensione della risposta di asso:

cd $(ls -d -1 */ |sed -n '1p')

per aprire la prima cartella in una directory. '1p' può essere cambiato in '2p' per la seconda directory.

ls -d -1 -la */

per elencare solo le directory da una directory padre.

    
risposta data 17.11.2018 - 08:36
0

È possibile modificare la directory in base al numero di inode.
per prima cosa troviamo l'inode con ls -il .
quindi

cd $(find -inum directory_inode_number)
    
risposta data user257256 25.04.2014 - 12:06
0

Se è necessario farlo in uno script o per supportare le directory con nomi non codificabili:

cd $(python -c $'import os\nfor entry in os.listdir(b"."):\n if os.path.isdir(entry):\n  os.write(1, entry);break\nelse: os.write(1, b".")')

Funziona se ci sono file nella directory, indipendentemente dal loro ordine di ordinamento rispetto alle directory.
Funziona per le directory nascoste quando cd */ fallisce.
Funziona se il nome non è rappresentabile nelle impostazioni internazionali correnti quando ls stampa solo ?? invece di un nome.

    
risposta data jfs 30.04.2014 - 13:19

Leggi altre domande sui tag