GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come dovrei glob per tutti i file nascosti?

Voglio eseguire alcune azioni (ad esempio chown ) su tutti i file nascosti in una directory.

So che questo .* è non una buona idea perché troverà anche il . e genitore .. directory (so che rm non funzionerà su . e .. ma altri comandi, incluso chown e chmod , entrerà felicemente in vigore)

Ma tutti i miei file nascosti hanno nomi diversi!

Come dovrei glob per tutti i file nascosti escludendo . e .. ?

Risposta accettata:

Puoi utilizzare il seguente extglob modello:

[email protected](!(.|))
  • . corrisponde a un letterale . all'inizio

  • @() è un extglob pattern, corrisponderà a uno dei pattern all'interno, poiché abbiamo solo un pattern al suo interno, lo sceglierà

  • !(.|) è un altro extglob pattern (nidificato), che corrisponde a qualsiasi file senza o senza un .; Come abbiamo abbinato . già all'inizio, l'intero modello corrisponderà a tutti i file che iniziano con . tranne . e .. .

extglob è abilitato nelle sessioni interattive di bash per impostazione predefinita in Ubuntu. In caso contrario, abilitalo prima:

shopt -s extglob

Esempio:

$ echo [email protected](!(.|))
.bar .foo .spam

Ubuntu
  1. Linux:come impostare le autorizzazioni file predefinite per tutte le cartelle/file in una directory?

  2. Come ridurre rapidamente a icona tutte le finestre per una singola applicazione?

  3. Come creare una partizione Ext4 per tutti gli utenti?

  4. Come visualizzare i file nascosti in cPanel?

  5. Come cercare i file per contenuto

Come mostrare i file nascosti in Linux

Come visualizzare e creare file e directory nascosti in Linux

Come visualizzare file e cartelle nascosti in Ubuntu File Manager

Come mostrare file nascosti su Linux

Come mostrare i file nascosti in cPanel File Manager?

Come spostare tutti i file inclusi i file nascosti nella directory principale tramite *