source_folder
-— это символическая ссылка, указывающая на каталог test
Но ваш путь к каталогу в символической ссылке является относительным. Если вы используете абсолютный путь (, например./home/user/test
)при копировании символической ссылки происходит нормально.
Если вы хотите скопировать все файлы из каталога, на который указывает символическая ссылка, вы можете использовать опцию -d
с командой cp
.
Это будет перебирать ссылки под /proc/*/ns
для подсчета количества активных пространств имен каждого типа, т. е. пространств имен, содержащих хотя бы один процесс:
sudo find /proc/*/ns -type l -printf "%l\n" |
gawk -F'[:\\[\\]]+' '{ nss[$1][$2] = 1 } END { for (ns in nss) { print ns ": " length(nss[ns]) } }'
Он работает путем подсчета количества различных идентификаторов, сгруппированных по типу пространства имен.
Пространства имен могут поддерживаться без процессов путем связывания их монтирования в другом месте; выше это не учитывается.
Вы можете использовать команду lsns(1)
из пакета util -linux для этого [1]:
lsns -n | awk '{n[$2]++}END{for(k in n) print k"\t"n[k]}'
net 2
cgroup 1
...
Но lsns
не работает:он не будет отображать ни пространства имен для каждого потока -, ни те, которые поддерживаются только открытым дескриптором или привязкой. Чтобы получить все это, попробуйте скрипт lsnsx.pl
из моего другого ответа :
# perl./lsnsx.pl | grep -v '^ '
cgroup 1
ipc 1
mnt 3
net 5
...
[1] Если вы работаете на машине без lsns
(, например. busybox ), вы можете извлечь эту информацию непосредственно из/proc/*/ns/*
:
for f in /proc/[0-9]*/ns/*; do readlink "$f"; done | awk -F: '!t[$2]++{c[$1]++}END{for(k in c)print k"\t"c[k]}'
Вы можете изменить /proc/[0-9]*/ns
на /proc/[0-9]*/task/[0-9]*/ns
, чтобы также получить пространства имен для -потоков, но на любой умеренно -используемой машине это будет ужасно медленно.