Non far guardare find dentro le cartelle nascoste
Ciao. La situazione è questa: ho catella che ospita una git repo; quindi qui ci sono [tt].git[/tt] e una [tt].gitignore[/tt]. Precisamente è un lavoro in TeX, e quindi la .gitignore in questione è tipo questa: click!. Ora, git ignora tutte le cose che hanno le estensioni lì indicate; a me però serve eliminarle nell'albero sulla mia macchina.
Non lo faccio partire perché ho paura che faccia fuori qualcosa che in realtà serve a git: infatti [tt]find[/tt] guarda dentro [tt].git[/tt].
[ot]Per la cronaca, i file [tt]*.idx[/tt] sono creati dal pacchetto [tt]imakeidx[/tt], ma quello in [tt].git[/tt] è un'altra cosa.[/ot]
La domanda è: come posso fare in modo che [tt]find[/tt] non guardi dentro le cartelle nascoste? Il mio obbiettivo è di scrivere qualcosa che stia su una riga e sia decente.
A me verebbe da fare una cosa di questo tipo
Ma non funziona.
[...@... git-repo] $ grep -vP '^\s*(#|$)' .gitignore | xargs -I % find . -type f -name % -delete
Non lo faccio partire perché ho paura che faccia fuori qualcosa che in realtà serve a git: infatti [tt]find[/tt] guarda dentro [tt].git[/tt].
[...@... git-repo] $ grep -vP '^\s*(#|$)' .gitignore | xargs -I % find . -type f -name % -print [...] ./.git/objects/pack/pack-BLAHBLAHBLAH.idx [...]
[ot]Per la cronaca, i file [tt]*.idx[/tt] sono creati dal pacchetto [tt]imakeidx[/tt], ma quello in [tt].git[/tt] è un'altra cosa.[/ot]
La domanda è: come posso fare in modo che [tt]find[/tt] non guardi dentro le cartelle nascoste? Il mio obbiettivo è di scrivere qualcosa che stia su una riga e sia decente.
A me verebbe da fare una cosa di questo tipo
[...@... git-repo] $ grep -vP '^\s*(#|$)' .gitignore | xargs -I % find . -type f -name % -print | grep -v '.*' | xargs rm
Ma non funziona.
Risposte
Io userei uno script in Python, in modo da non dover fare questi giochi di prestigio.
Se pero' proprio vuoi o devi usare una riga di comando qui c'e' qualcosa di utile:
https://askubuntu.com/questions/266179/ ... edded-find
Se pero' proprio vuoi o devi usare una riga di comando qui c'e' qualcosa di utile:
https://askubuntu.com/questions/266179/ ... edded-find
Grazie. Avevo cercato, ma avevo sbagliato a scrivere e non mi funzionava niente...
Il comando che funziona quindi è questo:
Il comando che funziona quindi è questo:
[...@... git-repo] $ grep -vP '^\s*(#|$)' .gitignore | xargs -I % find . -not -path './.git/*' -type f -name % -delete