Sistemdeki tüm bağlı dosyaların listesini veya belirli bir dizinden nasıl alabilirim. Eskiden bağlantılar yaratırdım ama zamanla yönetilemez hale geldi. Bu tür bağlantıların listesini bir dizinden istiyorum. Biri yardım edebilir mi? sembolik bulmaLinux'taki diğer dizinlerin veya dosyaların temel olarak yumuşak veya sabit bağlantıları olan tüm dosyalar nasıl bulunur?
cevap
kolaydır:
% find . -type l
söz konusu dizinin bir alt ayrıca daha sonra bu artış sabit bağlantı sayısı alt dizinleri vardır çünkü eğer sabit bağlantıları bulma, zordur. Alt dizinlerin UNIX'teki ebeveynlerine nasıl bağlandığı budur (her alt dizindeki ..
girişi).
sadece dosyaları (ve dizinleri) bağlantılı bulmak istiyorsanız
, işe yarayacak:% find . -type f \! -links 1
Bu çalıştığı için bir bağlantı sayısı> 1 olacak sahip sabit bağlantıları yaptığı bir dosya
: ve bağlantısız dosyası bir bağlantı sayısı == 1 sahiptir, dolayısıyla bu komut size kullanabilirsinizfind
yeni sürümlerinde, <> 1
Alternatif kimin bağlantı sayısı tüm dosyaları arar
% find . -type f -links +1
Bu, yukarıdakiyle aynı nedenden dolayı çalışır; Ancak, bulmanın daha yeni sürümleri, yalnızca bir sayı yerine + n veya -n alabilir. Bu, sırasıyla n'den büyük veya n'den küçük olanların test edilmesine eşdeğerdir.
Wao, bu küçük bir komuttu. Teşekkürler Alnitak – DKSRathore
Er ... bir dosyada <1 bağlantı var mı? Demek istediğim, bu bir filiz olmayan inode mu? – naught101
@ naught101 iyi, -1 sağlama gerçekten herhangi bir dosya bulmakta başarısız olur. – Alnitak
@OP, Eğer GNU bulursanız, -printf "%n"
, , vb.
find /path -type f -printf "%f/%n/%i\n" | while IFS="/" read filename num_hlinks inum
do
echo "Filename: $filename. Number of hard links: $num_hlinks, inode: $inum"
# if 2 or more files have the same inode number, then they are hard links.
# you can therefore count how many $inum that are the same and determine those hard links, which
# you have to try doing yourself.
done
find/-xdev -samefile filename
örneğin bakınız: Burada verilen tüm sabit ve yumuşak linkleri bulmak için veya Alnitak ve amber_linux yanıtlarını find -L /where/to/search -samefile /some/link/to/file
ile birleştirin.
Çok teşekkürler! Bu tam olarak aradığım şeydi - hangi dosyaların aslında baktığımla aynı dosyada olduğunu buldum. – cb2
Bence bu serverfault'a ait –
serverfault nedir? – DKSRathore
burada deneyin: serverfault.com –