Entfernen -print
, entkommen ( and )
und Platz hinzufügen{}
find . -type d \( -path ./node_modules \) -prune -o -exec chmod 644 {} \;
Ich möchte alle Ordner und Unterordner innerhalb eines bestimmten Ordners chmod ändern, außer dass ich einen Ordner (und alle darin enthaltenen Unterordner) ausschließen möchte.
Was ich bisher habe, ist ein Hacker der folgenden Lösungen von StackOverflow:
Hier ist, was ich bisher hatte:
finden . -type d (-path ./node_modules) -prune -o -print -exec chmod 644 {} \;
Das Problem ist mit oder ohne -print
Ich erhalte folgende Fehlermeldung:
find: fehlendes Argument für "-exec"
Die folgende Zeile enthält die erwarteten Ergebnisse, aus denen ich -exec chmod 644{}\;
lesen muss:
finden . -type d (-path ./node_modules) -prune -o -print
Was fehlt mir in dieser Zeile, um die Daten weiterzuleiten -exec
?
Entfernen -print
, entkommen ( and )
und Platz hinzufügen{}
find . -type d \( -path ./node_modules \) -prune -o -exec chmod 644 {} \;
Nach einigem Spielen habe ich festgestellt, dass Folgendes für mich funktioniert hat:
find . -not -path "*/node_modules*" -type f -exec chmod 644 {} \;
find . -not -path "*/node_modules*" -type d -exec chmod 755 {} \;