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.
ls -la | awk '$9 ~ /^\./'volontà.
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.
ls -la | awk '$9 ~ /^\./'volontà.
Risposte:
find . -type f -name '\.*' -print
Deve funzionare se si desidera elencare tutti i file nascosti nella gerarchia di directory.
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 .*
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.
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.
-A(invece di -a) da ignorare ., ...
-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.
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"
find . \( -type f -o -type d \) -name '\.*' -print; applicare maxdepthdove necessario.
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 "^\./\."
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"
Puoi provare :
ls -a |grep -E "^\."
^ indica che è l'inizio del contenuto con regexp
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 '^\.'