De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Juan Carlos Castro y Castro
Data de Publicação: 16 de September de 2008
Esta função para shell script retorna em que dispositivo (partição, compartilhamento remoto etc.) reside um arquivo ou diretório. Útil para determinar se uma operação de "move" de um diretório por outro será "atômica" ou se o SO será obrigado a fazer uma cópia e apagar o original. Também pode ser usada para descobrir se um determinado arquivo está num HD local ou num ponto de montagem remoto.
whichfs () { if ! LANG=C df -P "$1" >/tmp/whichfs.$$ 2>&1; then LANG=C df -P "`dirname $1 2>/dev/null`" >/tmp/whichfs.$$ 2>&1 fi RETVAL=$? if [ $RETVAL -eq 0 ]; then tail -n +2 /tmp/whichfs.$$ | cut -d ' ' -f 1 RETVAL=$? fi rm -f /tmp/whichfs.$$ return $RETVAL }
Exemplos de uso:
if [ `whichfs /home` = `whichfs /` ]; then echo "home em partição separada" else echo "home na partição raiz" fi if [ `whichfs $ARQ_ORIGEM` = `whichfs $ARQ_DESTINO` ]; then mv $ARQ_ORIGEM $ARQ_DESTINO else echo "PERIGO: sistema está tentando mover '$ARQ_ORIGEM' para um filesystem diferente." fi if whichfs "$DIR_DESTINO" | grep ^/dev >/dev/null; then echo "Este diretório fica nesta máquina" elif whichfs "$DIR_DESTINO" | grep ^// >/dev/null; then echo "Este diretório fica num compartilhamento Windows remoto" elif whichfs "$DIR_DESTINO" | grep '^[^/].*:/' >/dev/null; then echo "Este diretório fica num compartilhamento NFS remoto" else echo "Nao faço a mais vaga idéia de onde esta %@#&* fica." fi
Estou consciente de que existe uma maneira melhor de fazer isto, usando
funções em C, como o utilitário df
sem dúvida deve fazer para exibir
a sua saída. Se algum visitante souber como fazer isso, a informação será
bem-vinda nos comentários.
Colaboração: Geison Porfirio
Tutorial sobre atualização de versão do OpenBSD.
Referência: http://www.openbsd-br.org/?q=node/71
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários