Non far guardare find dentro le cartelle nascoste

Messaggioda kaspar » 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.
kaspar
Junior Member
Junior Member
 
Messaggio: 269 di 495
Iscritto il: 17/11/2019, 09:58

Re: Non far guardare find dentro le cartelle nascoste

Messaggioda Quinzio » 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
Quinzio
Cannot live without
Cannot live without
 
Messaggio: 5136 di 10547
Iscritto il: 24/08/2010, 06:50

Re: Non far guardare find dentro le cartelle nascoste

Messaggioda kaspar » 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                                   
kaspar
Junior Member
Junior Member
 
Messaggio: 271 di 495
Iscritto il: 17/11/2019, 09:58


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite