Yanıtlar:
Sen ile silebilirsiniz rmzamanki gibi: rm NameOfFile. Sabit bağlantılarda, "orijinal dosya" ile "dosyaya bağlantı" arasında bir ayrım olmadığını unutmayın: aynı dosya için yalnızca iki adınız vardır ve adlardan yalnızca birini silmek diğerini silmez.
sudo, sağladığınız komutla (süper kullanıcı olarak) oluşturduysanız, root olarak kullanmanız (kullanmanız ) gerekir.
Yedekli sabit bağlantıları kaldırmak için bu komut dosyası var. Ama kendine iyi bak - bu oldukça tehlikelidir.
#!/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
Aslında rmişe yaramıyor:
[user@localhost Products]$ rm AZP/
rm: cannot remove `AZP/': Is a directory
[user@localhost Products]$ rm -r AZP/
rm: cannot remove `AZP': Not a directory
Ne işe yarıyor unlink AZP?
AZP/Bir dizine benziyor, rm özyinelemeli bayrağı olmadan dizinlerde çalışmaz. Ayrıca coreutills docs göre. >>> Çoğu sistem bir dizine bağlantı oluşturmayı yasaklar; izin verildiği yerlerde yalnızca süper kullanıcı bunu yapabilir (ve bir döngü oluşturmak diğer birçok yardımcı programa sorunlara neden olacağından dikkatli olun).
AZPbir dizin (veya başka şeylere) sembolik link rm AZP/olmaz iş nedeniyle rm(çünkü onun bir dizin düşünen /sonunda). Ancak rm AZPsadece iyi çalışacak. -1
Yalnızca bağlantıyı kaldırmak ve böylece orijinal dosyayı saklamak istiyorsanız, bağlantıyı kaldırmanız gerekir.
unlink(1)mu? Bu, unlink(2)sistem çağrısı etrafındaki sığ bir sarmalayıcıdır , rm(1)dizin olmayan tüm dosyalar için kullanılan aynı sistem çağrısıdır .
unlink, ismine rağmen, bir hardlink'i iki ayrı dosyaya ayırmaz, ancak "unlinked" dizin girişini kaldırır (ancak link sayısı> 1 olduğu sürece, file / content / inode dosyasını değil).
ln -n /path/to/filebir dosya oluştururfileve kısacaln --no-dereference /path/to/file. Bu, eğer/path/to/filesembolik bir link ise, yeni oluşturulan hardlink, linklink hedefi yerine bu linke işaret edecektir.