Non far guardare find dentro le cartelle nascoste

kaspar1
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.

[...@... 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
Quinzio
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

kaspar1
Grazie. Avevo cercato, ma avevo sbagliato a scrivere e non mi funzionava niente...

Il comando che funziona quindi è questo:
[...@... git-repo] $ grep -vP '^\s*(#|$)' .gitignore | xargs -I % find . -not -path './.git/*' -type f -name % -delete                                   

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.