Como mover a pasta no unix usando o mv, somente quando o destino estiver na mesma unidade
10
Preciso mover uma pasta usando o comando unix mv, mas apenas se o destino estiver na mesma unidade ou no mesmo sistema de arquivos. Qual seria a melhor abordagem?
Você acha que é compatível com as distribuições Linux?
Apenas para divulgar as melhores práticas, use em $(...)vez de `...`. O último é preterido em favor do primeiro.
precisa
Obrigado @ Shahbaz, apenas editei com sua recomendação!
Fedorqui 29/04
@ zapp eu não sei, deve testá-lo. Minha experiência com statme diz que às vezes é complicado, pelo menos com o SunOS. Mas sendo Linux, espero que seja compatível. Com o meu Ubuntu 12 está tudo bem.
Fedorqui 29/04
isso %dgera valores diferentes para diferentes diretórios (até a mesma partição) tente com o seu /e/tmp
Kent
2
Provavelmente, essa não é a solução mais limpa, mas você pode usar o fato de que não é possível criar links físicos entre as unidades.
ln /path1/file /path2/file 2>/dev/null
if[[ $?==0]]then
rm /path1/file
fi
Respostas:
Baseado em Como verificar se dois diretórios ou arquivos pertencem ao mesmo sistema de arquivos ( /unix// ):
Então você pode:
e então compare.
Você também pode escrever assim:
Outra opção. Também retirado da pergunta Stackexchange :
fonte
$(...)
vez de`...`
. O último é preterido em favor do primeiro.stat
me diz que às vezes é complicado, pelo menos com o SunOS. Mas sendo Linux, espero que seja compatível. Com o meu Ubuntu 12 está tudo bem.%d
gera valores diferentes para diferentes diretórios (até a mesma partição) tente com o seu/
e/tmp
Provavelmente, essa não é a solução mais limpa, mas você pode usar o fato de que não é possível criar links físicos entre as unidades.
fonte