En réponse à la question posée par the_undefined sur la façon de supprimer un hardlink à un répertoire sans supprimer le contenu d'autres répertoires qui lui sont liés: d'Aussi loin que je peux dire, il ne peut pas être fait à partir de la ligne de commande à l'aide de builtin commands. Cependant, ce petit programme (inspiré par Freeman post) de le faire:
#include <unistd.h>
#include <stdio.h>
int main(int argc, char* argv[]) {
if (argc != 2) {
fprintf(stderr,"Use: hunlink <dir>\n");
return 1;
}
int ret = unlink(argv[1]);
if (ret != 0)
perror("unlink");
return ret;
}
À suivre avec Freeman exemple,
$ gcc hunlink.c -o hunlink
$ echo "foo bar" > child1/baz.txt
$ ./hunlink parent/clone2
Va supprimer le hardlink au parent/clone2, mais laissez le répertoire enfant1 et le fichier child1/baz.txt seul.