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' ls
output, è necessario aggiungere ^
all'inizio di regex e non utilizzare l' -l
opzione. L'utilizzo -l
causa 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 printf
bash 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 -maxdepth
per 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 ls
a grep
(che, come sottolineato da devnull , non è mai una buona idea), assicurati di usare \ls
o command ls
perché 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 grep
se il suo pattern è ancorato all'inizio della linea.
-A
(invece di -a
) da ignorare .
, ..
.
-A
differisce da -a
per le directory in cui ls
scende, ma entrambi sono (ugualmente) ignorati e inutili per i nomi specificati nella riga di comando con -d
effetto. Anche se ls
è alias --color=auto
allora le tubazioni vanno bene; solo --color=always
o --color
causa 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 maxdepth
dove 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 maxdepth
valori 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
ls
non è 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 '^\.'