~USER
é apenas uma notação abreviada para o diretório inicial do usuário USER
. Para um usuário normal, isso normalmente seria /home/USER
, mas, para root, normalmente é /root
.
Quanto à sua pergunta se um é preferível ao outro: A única diferença é que ~root
é expandido dinamicamente para o diretório inicial do root, enquanto /root
é um caminho absoluto que não passa por nenhum processo de expansão. O que você quer depende do seu caso de uso específico. Se você quiser que seu script funcione em máquinas em que o diretório pessoal do root esteja em outro lugar que não seja em /root
, use ~root
. Se você quiser ter certeza de que o caminho absoluto /root
é sempre usado, use /root
.
Na prática, não deve fazer diferença na maioria dos casos, embora eu pessoalmente me sinta mais seguro usando /root
a menos que eu tenha motivos para esperar que meu script seja executado em máquinas onde o diretório home do root não é /root
.