[Risolto] listare tutti e soli i file nascosti

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
G_e_r_o_n_i_m_o
Prode Principiante
Messaggi: 97
Iscrizione: lunedì 19 settembre 2016, 12:26
Desktop: xubuntu
Distribuzione: Xubuntu 16.04.1 LTS

[Risolto] listare tutti e soli i file nascosti

Messaggio da G_e_r_o_n_i_m_o »

Ciao a tutti,

ho bisogno di scrivere un comando, utilizzando la pipeline, che permetta di listare tutti e solo i file nascosti presenti nella mia home directory che iniziano con una lettera maiuscola. Qualcuno sa come fare?

Ps. sono alle primissime armi con linux e la shell :p
Ultima modifica di G_e_r_o_n_i_m_o il domenica 20 novembre 2016, 9:34, modificato 1 volta in totale.
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4026
Iscrizione: lunedì 3 aprile 2006, 10:17

Re: listare tutti e soli i file nascosti

Messaggio da bingel »

Codice: Seleziona tutto

find ~ -maxdepth 1 -name '.[A-Z]*'
Oppure, se vuoi ottenere veramente solo i files (directories escluse):

Codice: Seleziona tutto

find ~ -maxdepth 1 -type f -name '.[A-Z]*'
Se vuoi cercare anche nelle subdirectories, devi togliere "-maxdepth 1".
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4026
Iscrizione: lunedì 3 aprile 2006, 10:17

Re: listare tutti e soli i file nascosti

Messaggio da bingel »

...oppure, usando una pipe come richiedevi (sembra che tu debba fare un compito, in tal caso studia che è meglio!):

Codice: Seleziona tutto

ls -a ~ | grep "^\.[A-Z]"
Tale comando mostra sia files che directories.
G_e_r_o_n_i_m_o
Prode Principiante
Messaggi: 97
Iscrizione: lunedì 19 settembre 2016, 12:26
Desktop: xubuntu
Distribuzione: Xubuntu 16.04.1 LTS

Re: listare tutti e soli i file nascosti

Messaggio da G_e_r_o_n_i_m_o »

Grazie bingel :-) ... si si sto preparando l'esame di Sistemi Operativi .. ma gli appunti sulla shell da cui ho iniziato a studiare sono scarsi di esempi .... quindi ti ringrazio del tuo aiuto ... ora utilizzo i comandi che mi hai dato per fare un pò di reverse engineering ;-) ... grazie ancora
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4026
Iscrizione: lunedì 3 aprile 2006, 10:17

Re: listare tutti e soli i file nascosti

Messaggio da bingel »

In tal caso:

Codice: Seleziona tutto

man find
man ls
man grep
e dai un occhio anche alle "espressioni regolari".
G_e_r_o_n_i_m_o
Prode Principiante
Messaggi: 97
Iscrizione: lunedì 19 settembre 2016, 12:26
Desktop: xubuntu
Distribuzione: Xubuntu 16.04.1 LTS

Re: listare tutti e soli i file nascosti

Messaggio da G_e_r_o_n_i_m_o »

Buongiorno bingel,

allora considerando il comando che fa uso della pipeline

Codice: Seleziona tutto

ls -a ~ | grep "^\.[A-Z]"
ho capito che

Codice: Seleziona tutto

ls -a ~
visualizza una lista dei nomi di tutti i file e le directory (compresi quelli nascosti) presenti nella mia home directory. Inoltre, avendo fatto uso della pipeline, il primo comando produce l'input per il secondo. Quindi la lista prodotta sarà l'input per:

Codice: Seleziona tutto

grep "^\.[A-Z]"
Il comando grep invece esegue una ricerca all'interno dei file indicati come argomento o in caso contrario tra quelli nello standard input.
Ora devo vedere un pò di capire l'espressione tra doppi apici della quale ho capito solo che [A-Z] indica che la prima lettere deve essere una tra quelle contenute nell'intervallo indicato, cioè una lettere maiuscola.

appena capisco l'espressione posto la spiegazione e nel caso qualcuno legge robe inesatte mi corregga tranquillamente ;-)
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4026
Iscrizione: lunedì 3 aprile 2006, 10:17

Re: listare tutti e soli i file nascosti

Messaggio da bingel »

Si tranne per il fatto che grep, in questo caso, non legge all'interno dei files che gli vengono passati come argomento tramite la pipe ma filtra il testo stesso che gli viene dato in pasto ovvero i nomi dei vari files.
G_e_r_o_n_i_m_o
Prode Principiante
Messaggi: 97
Iscrizione: lunedì 19 settembre 2016, 12:26
Desktop: xubuntu
Distribuzione: Xubuntu 16.04.1 LTS

Re: listare tutti e soli i file nascosti

Messaggio da G_e_r_o_n_i_m_o »

forse ci sono .... allora il carattere ^ all'interno di una espressione regolare indica inizio riga ... il carattere \ è il carattere di escape per un carattere speciale che permette al carattere seguente di essere interpretato letteralmente e non funzionalmente. Quindi l'espressione "^\.[A-Z]" indica alla grep di cercare le stringhe che iniziano con un punto seguito da una qualsiasi lettera maiuscola.
Corretto?
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4026
Iscrizione: lunedì 3 aprile 2006, 10:17

Re: listare tutti e soli i file nascosti

Messaggio da bingel »

Promosso! 😀
G_e_r_o_n_i_m_o
Prode Principiante
Messaggi: 97
Iscrizione: lunedì 19 settembre 2016, 12:26
Desktop: xubuntu
Distribuzione: Xubuntu 16.04.1 LTS

Re: listare tutti e soli i file nascosti

Messaggio da G_e_r_o_n_i_m_o »

grazie ancora bingel per la disponibilità :-) ... ora analizzo per bene gli altri due comandi che mi hai consigliato ...li posto ... e poi metto risolto ;-) ... e se alla fine prenderò 30 all'esame ti offro un caffè :-P
G_e_r_o_n_i_m_o
Prode Principiante
Messaggi: 97
Iscrizione: lunedì 19 settembre 2016, 12:26
Desktop: xubuntu
Distribuzione: Xubuntu 16.04.1 LTS

Re: listare tutti e soli i file nascosti

Messaggio da G_e_r_o_n_i_m_o »

Ora consideriamo il comando che cerca i soli file e directory nascosti nella home directoy (che non fa uso della pipeline):

Codice: Seleziona tutto

find ~ -maxdepth 1 -name '.[A-Z]*'
-Il comando find esegue una ricerca all'interno dei percorsi indicati per i file che soddisfano l'espressione di ricerca.

-il simbolo tilde ~ indica che il percorso di ricerca in questo caso è la home directory.

-L'opzione -maxdepth levels, dove levels dve essere un intero nonnegativo, indica il numero massimo di livelli di directory in cui cercare. In questo caso l'opzione -maxdepth 1 dice che bisogna cercare al massimo nella directory specificata senza scendere in alcuna subdirectory.

-La direttiva -name <modello> indica che la ricerca trova un elemento utile quando incontra un nome di file o directory corrispondente al <modello>. In questo caso il modello è '.[A-Z]*'. Racchiudendo una serie di caratteri fra apici singoli ' ' si evita che questi vengano interpretati come caratteri speciali, .[A-Z] indica che il nome deve iniziare con un punto seguito da una qualsiasi lettera maiuscola, e il quantificatore * indica che devono essere ricercate 0 o più occorrenze.

Si accettano consigli e correzioni :-)...
Avatar utente
bingel
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4026
Iscrizione: lunedì 3 aprile 2006, 10:17

Re: listare tutti e soli i file nascosti

Messaggio da bingel »

Tutto corretto tranne per il fatto che l'asterisco in questo caso è usato come wild card.
G_e_r_o_n_i_m_o
Prode Principiante
Messaggi: 97
Iscrizione: lunedì 19 settembre 2016, 12:26
Desktop: xubuntu
Distribuzione: Xubuntu 16.04.1 LTS

Re: listare tutti e soli i file nascosti

Messaggio da G_e_r_o_n_i_m_o »

bingel possibile che quando si trova tra backtick l'asterisco non venga interpretato come wildcard ma come quantificatore?
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4446
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: listare tutti e soli i file nascosti

Messaggio da UbuNuovo »

No, è perché find normalmente usa il globbing e non le regex.
Per usare le regex in find ci sono le apposite opzioni.
-regex pattern
File name matches regular expression pattern. This is a match on the whole path, not a search. For example, to match a file named `./fubar3', you
can use the regular expression `.*bar.' or `.*b.*3', but not `f.*r3'. The regular expressions understood by find are by default Emacs Regular
Expressions, but this can be changed with the -regextype option.

-iregex come -regex ma case insensitive

-regextype type
Changes the regular expression syntax understood by -regex and -iregex tests which occur later on the command line. Currently-implemented types are
emacs (this is the default), posix-awk, posix-basic, posix-egrep and posix-extended.
Salva l'Ucraina! 🇺🇦
G_e_r_o_n_i_m_o
Prode Principiante
Messaggi: 97
Iscrizione: lunedì 19 settembre 2016, 12:26
Desktop: xubuntu
Distribuzione: Xubuntu 16.04.1 LTS

Re: listare tutti e soli i file nascosti

Messaggio da G_e_r_o_n_i_m_o »

ecco ... non è che sia proprio chiaro chiaro -.-'
G_e_r_o_n_i_m_o
Prode Principiante
Messaggi: 97
Iscrizione: lunedì 19 settembre 2016, 12:26
Desktop: xubuntu
Distribuzione: Xubuntu 16.04.1 LTS

Re: listare tutti e soli i file nascosti

Messaggio da G_e_r_o_n_i_m_o »

quindi in questo caso siamo in presenza di un glob pattern nel quale l'asterisco è un metacarattere che rappresenta una sequenza di zero o più caratteri qualsiasi?
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4446
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: listare tutti e soli i file nascosti

Messaggio da UbuNuovo »

Si, in pratica "*" (globbing) equivale a ".*" nelle regex.
Salva l'Ucraina! 🇺🇦
G_e_r_o_n_i_m_o
Prode Principiante
Messaggi: 97
Iscrizione: lunedì 19 settembre 2016, 12:26
Desktop: xubuntu
Distribuzione: Xubuntu 16.04.1 LTS

Re: listare tutti e soli i file nascosti

Messaggio da G_e_r_o_n_i_m_o »

ok perfetto ;-)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 14 ospiti