Счетчик ссылок для каталога — это количество имен, которые имеет этот каталог (Это работает так же, как и для обычных файлов ).
У вашего каталога cmd
два имени:
cmd
в своем родительском каталоге. .
в самом каталоге. Каталог /var/www/html
имеет девять имен:
html
в своем родительском каталоге. .
сама по себе. ..
в каждом из его (семи )подкаталогов. При нормальных обстоятельствах количество ссылок для записи .
каталога должно быть равно 2 плюс количество подкаталогов, которые он содержит.
Это также верно для корневого каталога /
, даже если он не имеет родительского каталога и, следовательно, должен иметь количество ссылок, равное 1 плюс количество подкаталоги.
У есть каталог ..
, который возвращает вас к /
. Так что это решает эту загадку; именно /..
предоставляет «дополнительную» ссылку на /
. Это единственный каталог, чей каталог ..
является обратной ссылкой на .
.
#!/bin/bash
if [ $1 = a ]
then
echo "$@" | awk '{print $2 + $3}'
fi
$2 и $3 не связаны с $1 сценария, но находятся в awk.
Учтите это, если вы всегда доверяете передаваемым ему аргументам:
$ cat script
awk 'BEGIN{ print '"$*"' }'
$./script 30 + 40
70
$./script 30 \* 40
1200
$./script 30 / 40
0.75
Обратите внимание на необходимость экранирования *
, так как это подстановочный символ, в противном случае укажите аргументы в кавычках, например.:
$./script '30 * 40'
1200
Кроме того, при таком подходе вы не ограничены простыми арифметическими выражениями:
$./script 'log(10)'
2.30259
$./script 'exp(10)'
22026.5
$./script '10^2 - sqrt(9)'
97