Usa lo find
comando. Per impostazione predefinita, elencherà in modo ricorsivo tutti i file e le cartelle che discendono dalla directory corrente, con il percorso completo (relativo).
Se vuoi il percorso completo, usa:find "$(pwd)"
.
- Se vuoi limitarlo solo a file o cartelle, usa
find -type f
ofind -type d
, rispettivamente. - Se vuoi che si fermi a una certa profondità di directory, usa
find -maxdepth 2
, ad esempio.
Leggi Finding Files per un manuale completo su GNU find
, che è l'impostazione predefinita su Linux.
$ pwd
/home/victoria
$ find $(pwd) -maxdepth 1 -type f -not -path '*/\.*' | sort
/home/victoria/new
/home/victoria/new1
/home/victoria/new2
/home/victoria/new3
/home/victoria/new3.md
/home/victoria/new.md
/home/victoria/package.json
/home/victoria/Untitled Document 1
/home/victoria/Untitled Document 2
$ find . -maxdepth 1 -type f -not -path '*/\.*' | sed 's/^\.\///g' | sort
new
new1
new2
new3
new3.md
new.md
package.json
Untitled Document 1
Untitled Document 2
Note:
.
:cartella corrente- rimuovi
-maxdepth 1
per cercare in modo ricorsivo -type f
:trova i file, non le directory (d
)-not -path '*/\.*'
:non restituire.hidden_files
sed 's/^\.\///g'
:rimuovere il./
anteposto dall'elenco dei risultati
Per completezza, il ls -lR /
comando elencherà il nome di ciascun file, il tipo di file, i bit di modalità file, il numero di collegamenti fisici, il nome del proprietario, il nome del gruppo, la dimensione e il timestamp di ogni file (a cui si dispone dell'autorizzazione per accedere) dalla directory principale in basso. (l
è per una lunga lista, cioè tutte quelle informazioni, R
è ricorrere alle directory, /
inizia dalla radice del filesystem.)
Ci sono un certo numero di parametri per rendere le informazioni di output più vicine a dir /S /A
, ma devo ammettere che non riesco a capire come tradurre il /B
.
Per informazioni utili, proverei:ls -lAFGR --si /
dove
- l =lista lunga (come menzionato sopra)
- A =quasi tutti i file (non include . e .. in ogni directory, ma mostra tutti i file nascosti)
- F =mostra l'indicatore del file, (uno tra
*
per i file exe,/
per le directory,@
per i collegamenti simbolici,|
per FIFO,=
per i socket e>
per porte) - G =non mostrare informazioni sul gruppo (rimuovi questo se vuoi vederle)
- R =elenca ricorsivamente directory (sottodirectory) e
- --si =mostra la dimensione del file in formato leggibile dall'uomo, ad esempio 1M (dove 1M =1000B)
ls
può fornire una sinossi più facile da leggere delle directory e dei file all'interno di tali directory, come find
L'output di può essere difficile da scansionare quando i file sono contenuti all'interno di strutture di directory molto lunghe (che si estendono su più righe). Il corollario è che ogni file è elencato da solo (cioè senza informazioni sul percorso della directory) e potresti dover tornare indietro di un paio di pagine/schermate per trovare le directory in cui si trova un particolare file.
Inoltre, find non contiene le informazioni /A nel comando DIR. Ho suggerito una serie di attributi nel comando che ho mostrato (che casualmente mostrano l'utilità extra che ottieni da Linux su un certo sistema proprietario), ma se leggi il man
e info
pagine su ls
, potrai vedere cosa includere o meno.