Shruggie Skrevet 7. april 2009 Del Skrevet 7. april 2009 /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
tingo Skrevet 7. april 2009 Del Skrevet 7. april 2009 /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
Shruggie Skrevet 7. april 2009 Forfatter Del Skrevet 7. april 2009 Kjøres gjennom bash, så det skal være i orden. Men jeg fikk det til å fungere ved å bruke ! -path /stash/upload i stedet for *upload*. Gud vet hvorfor Lenke til kommentar
rolfn Skrevet 20. april 2009 Del Skrevet 20. april 2009 /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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå