visualizza solo i file che iniziano con. (nascosto)


11

Ho provato a visualizzare solo i file nascosti ma non so come farlo.

Funziona (ma abbina anche punti in altri punti)

ls -la | grep '\.'

Stavo provando ad aggiungere ^ma non ho trovato la soluzione.


1
L'analisi lsnon è mai un'idea meravigliosa, ma quello che hai provato avrebbe funzionato se avessi usato l'ancora ^per indicare l'inizio della partita. ls -la | grep '^\.'
Devnull

3
No, il nome file non è l'inizio della riga con il flag -l. ls -la | awk '$9 ~ /^\./'volontà.
yoonix,

Risposte:



4
find . -type f -name '\.*' -print 

Deve funzionare se si desidera elencare tutti i file nascosti nella gerarchia di directory.


2

Se si desidera analizzare l' lsoutput, è necessario aggiungere ^all'inizio di regex e non utilizzare l' -lopzione. L'utilizzo -lcausa ogni uscita di riga che inizia con le informazioni sull'autorizzazione di file o cartelle, non il nome di file o cartella. Quindi dovresti usare così:

ls -Ad | grep '^\.'

Oppure puoi fare con printfbash builtin:

printf "%s\n" .*

Se usi zsh, puoi usare:

print -l .*

1

Ecco altri due modi per trovare solo i file nascosti.

find . -maxdepth 1 -name ".*" -type f -ls

o

find . -maxdepth 1 -name ".*" -type f -printf "%P \n"

Utilizzare -maxdepthper specificare fino a che punto si desidera cercare nella struttura di directory.


1

Un miglioramento sulla risposta di Flup :

ls -lad .[!.]* ..?*

Questo elencherà tutti i file il cui nome inizia con un punto e che non sono né .né né ...

Nota che se vuoi reindirizzare l'output di lsa grep(che, come sottolineato da devnull , non è mai una buona idea), assicurati di usare \lso command lsperché se lsè aliasato per mostrarti output colorato (come ad esempio su Debian) , il suo output contiene sequenze di escape ANSI per creare output colorati, che faranno scattare il tuo grepse il suo pattern è ancorato all'inizio della linea.


1
È possibile utilizzare -A(invece di -a) da ignorare ., ...
OJFord,

@ OJFord + -Adifferisce da -aper le directory in cui lsscende, ma entrambi sono (ugualmente) ignorati e inutili per i nomi specificati nella riga di comando con -deffetto. Anche se lsè alias --color=auto allora le tubazioni vanno bene; solo --color=alwayso --colorcausa problemi.
dave_thompson_085

0

La soluzione di val0x00ff è davvero buona, ma dimentica le directory nascoste.

Se vuoi file nascosti e directory nascoste , senza. e .. :

find -maxdepth 1 -regex '\./\..+' -printf "%P\n"

Il tuo suggerimento fallisce su VMware ESXi (elenca nessun file e nessuna directory) e in qualche modo fallisce anche su Linux (con maxdepth> 1, elenca anche tutti i file in una directory che inizia con un.), Ma questo funziona sia su Linux che ESXi: find . \( -type f -o -type d \) -name '\.*' -print; applicare maxdepthdove necessario.
Jeroen Wiert Pluimers,

0

Sotto uno è molto compatto e supporta molte varianti

1) Visualizza file nascosti, directory e sottodirectory

find . | grep "^\./\."

2) Visualizza solo directory e sottodirectory nascoste

find . -type d | grep "^\./\."

3) Visualizza i file nascosti solo nelle directory correnti e secondarie

find . -type f | grep "^\./\."

4) Visualizza i file e le directory nascosti nella cartella corrente

find . -maxdepth 1 | grep "^\./\."


0

Puoi provare:

find . -maxdepth 1 -type f -name '\.*' -print
find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -print

Ovviamente puoi usare maxdepthvalori diversi o rimuoverlo completamente. Molto utile se si desidera esplorare tra directory ( -type d) o file regolari ( type f) o entrambi, e combinare con altre funzioni come:

(ad es. ora dell'ultima modifica, basata sull'esempio di @piroux - completata da @ jeroen-wiert-pluimers )

find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -exec stat -c %y {} \; -printf "%P\t"

-1

Puoi provare :

ls -a |grep -E  "^\."

^ indica che è l'inizio del contenuto con regexp


1
Un duplicato di un'altra risposta di 3 anni fa ...
Jeff Schaller

Ho visto la risposta precedente, non è duplicata, e sicuramente "ls -a" e "ls -Ad" non hanno lo stesso significato. "-a" significa che l'elenco di tutti i file / directory inclusi inizia con "." -A significa elencare tutto tranne "." , ".." e contenuto della directory.
Lingjing France
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.