GNU/Linux >> Linux Esercitazione >  >> Linux

Abbina tutti i file in tutte le directory nidificate con il globbing della shell

In particolare su git (gitignore, gitattributes e comandi che accettano nomi di file):se il pattern non contiene barre, * i caratteri jolly corrisponderanno in profondità. Se contiene una barra, git chiamerà fnmatch con FNM_PATHNAME flag e i caratteri jolly semplici non corrisponderanno alle barre. ** la corrispondenza profonda non è supportata. Forse questo tipo di corrispondenza profonda potrebbe essere supportato più ampiamente con un nuovo FNM_STARSTAR flag e un'implementazione in glibc, gnulib e altri posti.


Se vuoi agire su tutti i file restituiti da find, anziché limitarti a elencarli, puoi reindirizzarli a xargs:

find <directory> -type f | xargs ls

Ma questo è solo per i comandi che non hanno un flag ricorsivo.


In Bash 4, con shopt -s globstar e zsh puoi usare **/* che includerà tutto tranne i file nascosti. Puoi fare shopt -s dotglob in Bash 4 o setopt dotglob in zsh per includere i file nascosti.

In ksh, set -o globstar lo abilita. Non penso che ci sia un modo per includere i file punto in modo implicito, ma penso che **/{.[^.],}* funziona.


Linux
  1. Nozioni di base su Linux:come scaricare file sulla shell con Wget

  2. Come comprimere file e directory su Linux (con esempi)

  3. Minuscolo di tutte le directory in una directory?

  4. Creazione e rimozione di file e directory in Linux

  5. Come trovare tutti i file che terminano con .rb con Linux?

Come escludere file e directory con Rsync

Mantenere sincronizzati file e directory Linux con rsync

Come eseguire la ricerca Grep su tutti i file e in tutte le directory

Makefile con file sorgente in diverse directory

Trova tutti i file con nome contenente una stringa

Trova directory con tutti i file all'interno più vecchi di X?