Gå til innhold

BSD/UnixHvorfor fungerer ikke denne 'find' kommandoen?


Anbefalte innlegg

/usr/bin/find /stash ! -user tom -and ! -path *upload* -exec /usr/sbin/chown tom {} \;

 

Denne fungerer altså ikke. Noen som vet hva som er riktig syntax?

Forklaring: alle filer som er i /stash, _ikke_ har user tom, og _ikke_ er i /stash/upload, skal execes.

Lenke til kommentar
Videoannonse
Annonse
/usr/bin/find /stash ! -user tom -and ! -path *upload* -exec /usr/sbin/chown tom {} \;

 

Denne fungerer altså ikke. Noen som vet hva som er riktig syntax?

Forklaring: alle filer som er i /stash, _ikke_ har user tom, og _ikke_ er i /stash/upload, skal execes.

Hmm, hva om du forsøker med '-not' istedet for '!'?

Kanskje shellet ditt tolker '!* som et spesialtegn.

Lenke til kommentar
  • 2 uker senere...
/usr/bin/find /stash ! -user tom -and ! -path *upload* -exec /usr/sbin/chown tom {} \;

 

Denne fungerer altså ikke. Noen som vet hva som er riktig syntax?

Forklaring: alle filer som er i /stash, _ikke_ har user tom, og _ikke_ er i /stash/upload, skal execes.

 

Du sier ikke hvilket os du er på, men etter min erfaring har de fleste utgaver av chown en -R opsjon som endrer eier rekursivt. Med mindre det er ganske få filer som ikke eies av "tom" er dette sannsynligvis mer effektivt, fordi da slipper du å starte en ny prosess for hver eneste fil som skal behandles. (Og kanskje enklere å skrive, avhengig av hvor mange kataloger som ligger under /stash). En annen løsning er å bruke xargs som samler opp argumenter fra stdin og kjører en angitt kommando med en så lang kommandolinje som mulig. (se også -print0 opsjon til find)

 

Når det ikke virker, kan det hende at du står i /stash, eller at det i katalogen du er i finnes en fil som heter noe med "upload", og isåfall vill skallet ekspandere *upload* til et matchende filnavn. For å unngå dette må du quote med \ eller ': -path '*upload*'.

 

 

rrn

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...