Come si elimina un collegamento fisico?

18

Recentemente ho creato un collegamento con il seguente:

sudo ln -n originalFileLocation

Come faccio a cancellare un hard link?

    
posta hawkeye 05.11.2011 - 11:17

4 risposte

32

Puoi eliminarlo con rm come al solito: rm NameOfFile . Nota che con gli hard link non ci sono distinzioni tra "il file originale" e "il link al file": hai solo due nomi per lo stesso file, e l'eliminazione di uno solo dei nomi non cancellerà l'altro.

    
risposta data Prateek 05.11.2011 - 11:24
2

Ho questo script per rimuovere i collegamenti fisici ridondanti. Ma attenzione: è piuttosto pericoloso.

#!/bin/bash
clear
echo Reduce redundant hardlinks in the current folder
echo ------------------------------------------------
echo 
echo "  $(basename $0) [-R]"
echo "      -R means recursive"
echo 
read -p "You can break by pressing Ctrl+C"
echo
ask=1
if [ a$1 == "a-R" ]; then  recursive=" -R "; fi

for i in $(ls -i $recursive | awk '{print $1}' | uniq --repeated | sort); 
do 
    echo "Inode with multiple hardlinked files: $i"
    first=1
    for foundfile in $(find . -xdev -inum $i);
    do 
        if [ $first == 1 ]; then
            echo "  preserving the first file:  $foundfile"
            first=0
        else
            echo "  deleting the redundant file:    $foundfile"  
            #rm $foundfile  
        fi
    done 
    if [ $ask == 1 ]; then 
        read -p "Delete all the rest of redundant hardlinks without asking? y/N "
        if [ a${REPLY,,} == "ay" ]; then  ask=0; fi
    fi  
#   read -p "pause for sure"
    echo
done
echo "All redundant hardlins are removed."
echo
    
risposta data xerostomus 23.12.2014 - 18:21
0

In realtà rm non funziona:

[[email protected] Products]$ rm AZP/
rm: cannot remove 'AZP/': Is a directory
[[email protected] Products]$ rm -r AZP/
rm: cannot remove 'AZP': Not a directory

Ciò che funziona è unlink AZP .

    
risposta data Bunyk 12.03.2014 - 17:36
0

Se si desidera rimuovere solo il collegamento e mantenere così il file originale, è necessario utilizzare lo scollegamento.

    
risposta data fbo72 29.11.2016 - 11:57

Leggi altre domande sui tag