는 방법을 찾을 수 있는 모든 파일은 기본적으로 소프트 또는 하드의 링크 또는 다른 디렉토리에 있는 파일 linux?

StackOverflow https://stackoverflow.com/questions/1810334

문제

어떻게 목록의 모든 링크된 파일 시스템에 또는에서 특정 디렉토리에 있습니다.내가 사용하는 링크를 만들지만 그들이 다루기 힘들게 되었습니다.내가 원하는 목록의 모든 그러한 링크에서 디렉토리에 있습니다.사람이 도움이 될 수 있습니다?

도움이 되었습니까?

해결책

를 찾는 심볼릭 링크는 것은 쉽습니다:

% find . -type l

는 링크는 까다롭기 때문에,경우의 하위 디렉터리에서 질문한 하위 디렉터리가 다 그를 증가 하드 링크를 계산합니다.는 하위 디렉터리에 연결된 그들의 부모는 유닉스에서는(그것의 .. 항목에서 각 하위디렉토리).

당신만을 찾으려면 연결 (그리고 디렉토리)이동:

% find . -type f \! -links 1

이 때문에 작동하는 파일 해야 하드 링크가 있는 링크를 계산>1,과 연결되지 않은 파일은 링크 count==1,이 명령을 보이는 모든 파일의 링크 계산 <>1

또,최신 버전에서의 find 당신이 사용할 수 있:

% find . -type f -links +1

이와 같은 이유로 위;그러나 최신 버전을 찾을 수 있+n 또는 n 신 수 있습니다.이에 해당하 테스트에 대한보다 큰 n 또는 n 개 미만으로,각각합니다.

다른 팁

find / -xdev -samefile filename

@OP 이 있는 경우 GNU 을 찾을 찾을 수 있습니다,하드 링크를 사용하여 -printf "%n", 예:

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

예를 들어오기 https://www.gnu.org/software/findutils/manual/html_node/find_html/Hard-Links.html 거나 결합 스타 알니타크 및 amber_linux 대답으로 find -L /where/to/search -samefile /some/link/to/file 을 찾아 모든 하드 및 소프트 링크된 파일입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top