Предположим, у вас есть следующая структура каталогов:
$ ls -lR
.:
total 4
drwxr-xr-x 3 user users 4096 Aug 2 14:05 a
./a:
total 4
drwxr-xr-x 3 user users 4096 Aug 2 14:05 b
./a/b:
total 4
drwxr-xr-x 2 user users 4096 Aug 2 14:05 c
./a/b/c:
total 0
С помощью chmod 777 *
разрешения всех файлов в текущем каталоге устанавливаются на 0777. Однако на файлы в подкаталогах это не влияет, т.е. для a/
будут установлены разрешения 0777, но не для a/b
или a/b/c
и т.д. :
$ chmod 777 *
$ ls -lR
.:
total 4
drwxrwxrwx 3 user users 4096 Aug 2 14:05 a
./a:
total 4
drwxr-xr-x 3 user users 4096 Aug 2 14:05 b <=== Note
./a/b:
total 4
drwxr-xr-x 2 user users 4096 Aug 2 14:05 c <=== Note
./a/b/c:
total 0
Здесь возникает рекурсия: при chmod -R 777 *
будут затронуты все файлы и каталоги во всех подкаталогах текущего каталога:
$ ls -lR
.:
total 4
drwxrwxrwx 3 user users 4096 Aug 2 14:05 a
./a:
total 4
drwxrwxrwx 3 user users 4096 Aug 2 14:05 b <=== Note
./a/b:
total 4
drwxrwxrwx 2 user users 4096 Aug 2 14:05 c <=== Note
./a/b/c:
total 0
Примечание: Если вы используете bash, то значение "все файлы" зависит от значения dotglob
, см. bash(1); аналогично для других оболочек.