Cada entrada em um diretório é um link físico para o arquivo. Tanto rm
como unlink
removem hard-links. Um arquivo é excluído quando e somente quando, todos os links para ele são removidos e nenhum processo o abre.
ln
.
Eu criei um link físico
$ ln hours.sh hours_link
teste-o
$ ls -l hours*
-rw-r--r-- 2 me staff 653 Apr 12 2018 hours.sh
-rw-r--r-- 2 me staff 653 Apr 12 2018 hours_link
remova-o com unlink
$ unlink hours_link
$ ls -l hours*
-rw-r--r-- 1 me staff 653 Apr 12 2018 hours.sh
até aí tudo bem, mas unlink
pode deletar o arquivo original que não é um link
$ cp hours.sh hours.bak.sh
$ unlink hours.sh
$ ls | grep hours.sh
#not return anything, hours.sh is deleted
verifique o manual e fique muito surpreso
unlink - call the unlink function to remove the specified file
rm - remove files or directories
Se você não apenas considerar isso como devo entender essa conversão?
Cada entrada em um diretório é um link físico para o arquivo. Tanto rm
como unlink
removem hard-links. Um arquivo é excluído quando e somente quando, todos os links para ele são removidos e nenhum processo o abre.
ln
.