Em primeiro lugar, sou completamente ignorante em relação aos comandos do shell. Então, por favor, seja paciente. Além disso, estou usando o OS X, mas estou feliz com uma resposta na generalidade do Unix, se isso for possível.
Estou tentando executar o comando stat -f [some parameters here] [volume name]
.
De acordo com referências em outros lugares, o comando mais simples desta forma stat -f /dev/disk0s2
é sintaticamente correto. Porém tenho o seguinte:
stat -f /dev/disk0s2
/dev/disk0s2
De acordo com aqui ( https://www.computerhope.com/unix/stat.htm ), por exemplo, devo obter um parágrafo cheio de informações. No meu caso, estou interessado principalmente no tamanho do bloco obtido por meio do comando stat.
Além disso, aqui ( https://apple.stackexchange.com/questions/42509/how-to-get-hfs-filesystem-blocksize ), são mencionados os parâmetros "%k, %z, %b". No entanto, no manual do stat (ou seja, usando man stat
), não consigo encontrar esses parâmetros. Além disso, não tenho ideia de por que as aspas estão sendo usadas ali (já vi ambos stat -f %k
e stat -f "%k"
, por exemplo).
Então, em resumo, eu tenho três perguntas:
1) Por que stat -f /dev/disk0s2
não está me dando a saída esperada?
2) Quais são esses parâmetros %k, %z e %b e eles estão sendo mencionados no manual?
3) Qual é o significado das aspas em torno dos parâmetros mencionados acima (por exemplo, stat -f %k
e stat -f "%k"
)? Isso é algo geral na sintaxe dos comandos do Unix?
Desde já, obrigado.
As ferramentas de linha de comando que vêm pré-instaladas no OS X vêm do FreeBSD, mas muitos guias online provavelmente assumirão um ambiente Linux e ferramentas GNU. Eles não são sempre os mesmos.
Compare as duas páginas man para FreeBSD stat e GNU stat . No FreeBSD,
-f
define o formato de saída e recebe um argumento correspondente. No GNU stat-f
solicita a saída sobre o sistema de arquivos (não o arquivo nomeado) e não aceita nenhum argumento.Portanto, 1) o resultado é diferente porque você está usando uma ferramenta diferente, 2) as opções de formato são mencionadas em "Formatos" na página de manual do FreeBSD. 3) As aspas não estão realmente relacionadas a
stat
si mesmas, mas ao shell. Os argumentos da linha de comando que contêm caracteres especiais para o shell (como espaço em branco ou caracteres glob,?*[]
etc.) precisam ser citados para evitar que o shell os processe . Mas%
não é especial (pelo menos não nesse contexto), então não importa se é citado ou não.