Вы можете использовать команду find для поиска в корневом каталоге и проверки наличия или отсутствия файла с заданным именем. При этом будет произведен поиск по всем каталогам и подкаталогам, направленным от корня
printf "\n Пожалуйста, введите имя файла "
read num3
if [ find / -type f -name $num3 2>/dev/null| wc -l
-gt 0 ]; then
echo "Это правильный сценарий"
else
echo "Неверное имя файла"
fi
Я пытался сделать mkdir -p /srv/postgres/data/mydir
, но поскольку
drwxr-xr-x 3 root root 4.0K Apr 7 08:26 srv
есть владелецroot
ниinstall -d -o <user> -g <group> -m <mode> <path>
@user2313838
ни sudo -u postgres mkdir -p /srv/postgres/data/mydir
работает @maGz
Поэтому я разделил его на две команды:
sudo mkdir -p /srv/postgres/data/mydir
sudo chown postgres:postgres /srv/postgres -R
-121 ---16731 -OverlayFS — это объединенная файловая система, и на уровне Docker есть два драйвера хранилища, которые используют ее :: исходная/более старая версия с именем overlay
и более новая версия с именем overlay2
. В OverlayFS есть каталог более низкого уровня -, который доступен только для чтения -. Поверх этого каталога находится каталог верхнего уровня -, который разрешает чтение -и запись. Каждый из этих каталогов называется слоем. Объединенное представление директорий нижнего -и верхнего -уровней представлено как единое целое, называемое "объединенным" каталогом.
Более новый overlay2
драйвер хранилища изначально поддерживает до 128 таких слоев. Старый драйвер overlay
может работать только с двумя слоями одновременно. Поскольку большинство образов Docker создаются с использованием нескольких слоев, это ограничение довольно существенно. Чтобы обойти это ограничение, каждый слой реализован как отдельный каталог, имитирующий полное изображение.
Чтобы изучить различия в моей тестовой системе, я вытащил образ «ubuntu» из Docker Hub и изучил различия в структуре каталогов между драйверами overlay2
и overlay
:
[root@testvm1 overlay2]$ ls */diff
4864f14e58c1d6d5e7904449882b9369c0c0d5e1347b8d6faa7f40dafcc9d231/diff:
run
4abcfa714b4de6a7f1dd092070b1e109e8650a7a9f9900b6d4c3a7ca441b8780/diff:
var
a58c4e78232ff36b2903ecaab2ec288a092e6fc55a694e5e2d7822bf98d2c214/diff:
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
c3f1a237c46ed330a2fd05ab2a0b6dcc17ad08686bd8dc49ecfada8d85b93a00/diff:
etc sbin usr var
[root@testvm1 overlay]# ls */root/
001311c618ad7b94d4dc9586f26e421906e7ebf5c28996463a355abcdcd501bf/root/:
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
048f81f400f7d74f969c4fdaff6553c782d12c04890ad869d75313505c868fbc/root/:
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
8060f0c647f24050e1a4bff71096ffdf9665bff26e6187add87ecb8a18532af9/root/:
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
fbdef944657234468ee55b12c7910aa495d13936417f9eb905cdc39a40fb5361/root/:
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
В представлении overlay
каждый слой имитирует полное изображение, в то время как слои overlay2
содержат только точные различия между слоями. В подходе драйвера overlay
жесткие ссылки используются как способ экономии места между различными уровнями. Однако этот метод все еще не идеален, и требуются новые индексы, когда данные изображения содержат специальные файлы, такие как символические ссылки и символьные устройства. Это может быстро привести к большому количеству инодов.
Распределение inode между драйверами overlay2
и overlay
в моей тестовой системе показано ниже.
[root@testvm1 overlay2]$ du --inodes -s *
8 4864f14e58c1d6d5e7904449882b9369c0c0d5e1347b8d6faa7f40dafcc9d231
27 4abcfa714b4de6a7f1dd092070b1e109e8650a7a9f9900b6d4c3a7ca441b8780
3311 a58c4e78232ff36b2903ecaab2ec288a092e6fc55a694e5e2d7822bf98d2c214
1 backingFsBlockDev
25 c3f1a237c46ed330a2fd05ab2a0b6dcc17ad08686bd8dc49ecfada8d85b93a00
5 l
[root@testvm1 overlay]# du --inodes -s *
3298 001311c618ad7b94d4dc9586f26e421906e7ebf5c28996463a355abcdcd501bf
783 048f81f400f7d74f969c4fdaff6553c782d12c04890ad869d75313505c868fbc
768 8060f0c647f24050e1a4bff71096ffdf9665bff26e6187add87ecb8a18532af9
765 fbdef944657234468ee55b12c7910aa495d13936417f9eb905cdc39a40fb5361
Общее количество инодов на overlay2
в моей системе достигает 3378. При использовании overlay
это число увеличивается до 5615. Это значение учитывает один образ и отсутствие запущенных контейнеров, поэтому большая система с несколькими контейнерами и образами докеров может быстро достичь предела индексов, налагаемого резервной файловой системой (. ] XFS или EXT4, где находится каталог /var/lib/docker/overlay
).
По этой причине более новый overlay2
драйвер хранилища в настоящее время рекомендуется для большинства новых установок. Драйвер overlay
устарел, начиная с Docker v18.09, и ожидается, что он будет удален в будущем выпуске.