Настройка тестовых каталогов и файлов:
$ mkdir -p x{1..3}/mf/dir{1..3}
$ touch x{1..3}/mf/file{1..3}
$ tree
.
|-- x1
| `-- mf
| |-- dir1
| |-- dir2
| |-- dir3
| |-- file1
| |-- file2
| `-- file3
|-- x2
| `-- mf
| |-- dir1
| |-- dir2
| |-- dir3
| |-- file1
| |-- file2
| `-- file3
`-- x3
`-- mf
|-- dir1
|-- dir2
|-- dir3
|-- file1
|-- file2
`-- file3
Затем найдите все каталоги, в пути которых есть mf
, и удалите их. -depth
выполняет первый обход в глубину -, так что find
не пытается войти в каталоги, которые он уже удалил. Мы также печатаем имена всех каталогов, которые удаляются.
$ find. -depth -type d -path "*/mf/*" -print -exec rm -rf {} +
./x1/mf/dir1
./x1/mf/dir2
./x1/mf/dir3
./x2/mf/dir1
./x2/mf/dir2
./x2/mf/dir3
./x3/mf/dir1
./x3/mf/dir2
./x3/mf/dir3
Сейчас:
$ tree
.
|-- x1
| `-- mf
| |-- file1
| |-- file2
| `-- file3
|-- x2
| `-- mf
| |-- file1
| |-- file2
| `-- file3
`-- x3
`-- mf
|-- file1
|-- file2
`-- file3
ответ на мою проблему
У меня недостаточно определено subuid/subgid для пользовательского пространства имен.
перед
/etc/subuid
/etc/subgid
dockeruser:120000:10000
и я создал пользователя в контейнере с UID=26551 -, где 26551 лежит не в пределах [120000,120000+10000], и, таким образом, переключиться на этого пользователя не удалось.
исправить
расширение диапазона subuid и subgid до [200000,200000+100000] и фактическое включение UID
/etc/subuid
/etc/subgid
dockeruser:200000:100000