# this works:
rm foo
# versus this, which doesn't:
rm foo/
V zásadě mu musíte říct, aby smazal soubor , nikoli odstranit adresář . Věřím, že je rozdíl mezi rm
a rmdir
existuje kvůli rozdílům ve způsobu, jakým knihovna C s každým zachází.
V každém případě by první měl fungovat, zatímco druhý by si měl stěžovat, že foo je adresář.
Pokud to nefunguje, jak je uvedeno výše, zkontrolujte svá oprávnění. K odstranění souborů potřebujete oprávnění k zápisu do obsahujícího adresáře.
použijte příkaz "unlink" a ujistěte se, že ne mít / na konci
$ unlink mySymLink
unlink() odstraní jméno ze systému souborů. Pokud byl tento název posledním odkazem na soubor a žádný proces nemá soubor otevřený, soubor se smaže a prostor, který používal, je zpřístupněn pro opětovné použití. Pokud byl název posledním odkazem na soubor, ale všechny procesy mají soubor stále otevřený, soubor zůstane v existenci, dokud nebude uzavřen poslední deskriptor souboru, který na něj odkazuje.
Myslím, že to může být problematické, pokud to čtu správně.
Pokud název odkazuje na symbolický odkaz, bude odkaz odstraněn.
Pokud název odkazuje na soket, fifo nebo zařízení, jeho název je odstraněn, ale procesy, které mají objekt otevřený, jej mohou nadále používat.
https://linux.die.net/man/2/unlink