1 практический пример inode:
у вас есть файл с хитрым именем (пример ~ *), и вам нужно его удалить.
ls
~*
rm -rf ~ *
повреждает ваш $ HOME, поэтому вам придется удалить его другим способом.
Прочтите здесь , как удалять файлы по индексному дескриптору.
Удалить файл по индексу:
find . -type f -inum 1234 - exec rm -rf {} /;
хорошо, я знаю, что вы можете избежать специальных символов и просто удалить его с помощью rm или использовать трюк -, но все же.
Como explica la página enlazada por @steeldriver , el desbordamiento aritmético es una realidad en Bash. En su lugar, podrías:
La aritmética de shell se limita a la representación interna de enteros.
La aritmética de Bash en computadoras de 64 bits debe ser menor que:
$ echo "$((2**63-1))"
9223372036854775807
Usando el siguiente re -escriba su secuencia de comandos para usar bc
y obtenga el valor correcto (eliminando el carácter d
que parece un error en su pregunta):
#!/bin/bash
myf="outfile.txt"
sed 's/[^0-9 ]*//g' "$1" | tr " " "\n" | sed '/^\s*$/d' > "$myf"
sum=$(bc <<< "$(cat "$myf"| tr -s ' \n' '++')0")
ilo=$(bc <<< "$(cat "$myf"| tr -s ' \n' '**')1")
[[ $2 =~ s ]] && echo "SUMA= $sum"
[[ $2 =~ i ]] && echo "ILOCZYN= $ilo"
Obtenemos:
$./skrypt12.sh logfile.txt -si
SUMA= 241
ILOCZYN= 15558672678912000000
Como puede ver, el resultado de la multiplicación es más grande de lo que bash podría manejar.