Discussioni su argomenti di Informatica

Regole del forum

Consulta il nostro regolamento e la guida per scrivere le formule
Rispondi al messaggio

Non far guardare find dentro le cartelle nascoste

14/01/2023, 16:04

Ciao. La situazione è questa: ho catella che ospita una git repo; quindi qui ci sono .git e una .gitignore. 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.

Codice:
[...@... 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 find guarda dentro .git.

Codice:
[...@... git-repo] $ grep -vP '^\s*(#|$)' .gitignore | xargs -I % find . -type f -name % -print
[...]
./.git/objects/pack/pack-BLAHBLAHBLAH.idx
[...]


Testo nascosto, perché contrassegnato dall'autore come fuori tema. Fai click in quest'area per vederlo.
Per la cronaca, i file *.idx sono creati dal pacchetto imakeidx, ma quello in .git è un'altra cosa.


La domanda è: come posso fare in modo che find 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

Codice:
[...@... git-repo] $ grep -vP '^\s*(#|$)' .gitignore | xargs -I % find . -type f -name % -print | grep -v '.*' | xargs rm


Ma non funziona.

Re: Non far guardare find dentro le cartelle nascoste

14/01/2023, 16:35

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

Re: Non far guardare find dentro le cartelle nascoste

15/01/2023, 18:19

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

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


Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000— Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.