sftp chmod rekursiv

Ich habe mich über sftp über Terminal bei einem Server angemeldet.

Wenn ich den Befehl

chmod -R 755 ./*

Ich erhalte den Fehler You must supply a numeric argument to the chmod command.. Wie wende ich einen rekursiven chmod 755 in sftp an?

Author: John, 2012-10-16

3 answers

Das könnt ihr vielleicht nicht. Es besteht eine gute Chance, dass der Chmod, der Ihnen über FTP oder SFTP zur Verfügung steht, die rekursive Option nicht unterstützt. Befehle, die unter FTP/SFTP verfügbar sind, sind oft etwas verkrüppelte Versionen dessen, was Sie lokal unter der Shell verfügbar hätten. Wenn Sie Glück haben, kann chmod auch ohne die Option -R rekursiv handeln, aber wenn Sie Pech haben, müssen Sie den Baum durchqueren und jede Ebene einzeln chmod ' ing.

 1
Author: Nicole Hamilton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-10-16 15:27:47

Von man sftp:

chmod mode path

Ändern Sie die Berechtigungen des Dateipfads in den Modus. Pfad kann enthält glob (3) Zeichen und kann mit mehreren Dateien übereinstimmen.

man 7 glob (man 3 glob Referenzen glob(7)) beschreibt die *, ? und [] Platzhaltermuster, mit denen wir vertraut sind, wenn wir ls. Sie könnten also verwenden:

chmod 755 ./*
chmod 755 ./*/*
chmod 755 ./*/*/*

Wiederholt, bis Sie alle Dateien erreicht haben und den Fehler erhalten:

Couldn't setstat on "./*/*/*": No such file or directory

Vor einer solchen Massenänderung könnten Sie noch einmal einchecken überlegen Sie, welche Verzeichnisse von lls betroffen wären (von man sftp):

lls [ls-options [path]]

Lokale Verzeichnisliste des Pfads oder des aktuellen Verzeichnisses anzeigen, wenn Pfad ist nicht angegeben. ls-options können alle Flags enthalten, die von der Befehl ls(1) des lokalen Systems. Pfad kann glob (3) Zeichen enthalten und kann mehrere Dateien übereinstimmen.

So (geben Sie einen absoluten Pfad zu lls an, um Überraschungen zu vermeiden):

lls -Rla /path

Sie können auch lls -Rla /path um sicherzustellen, dass Ihr chmod wie erwartet funktioniert.

 3
Author: jaume,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-04-09 08:09:23

Ich habe an einem Server gearbeitet, auf dem das Rekursive gemäß Nicoles Kommentar oben nicht unterstützt zu werden schien. Der Wildcard-Chmod hat funktioniert, aber er hat versucht, auf der wahnsinnigen Ordnerstruktur zu laufen.

Was am Ende den Trick für mich gemacht hat, war eigentlich Filezilla-obwohl ich nicht rekursiv über das Terminal chmod konnte, konnte Filezilla es irgendwie über seine GUI tun.

 1
Author: the.s.brom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-03-03 18:15:14