사용자나 그룹 없이 파일을 검색해야 합니다.
find / -nouser -o -nogroup
나는 이것이 괜찮다고 생각한다. 그러나 NFS 공유를 검색하고 싶지 않습니다. find 명령에서 NFS 공유를 제외하는 방법은 무엇입니까?
답변1
당신이 얻을 가능성이 가장 가까운 것은 -xdev
"다른 파일 시스템에 디렉토리를 삭제하지 마십시오"를 의미하는 use 입니다. 그런 다음 사용하는 파일 시스템을 지정해야 합니다.하다검색하고 싶습니다.
답변2
GNU find를 사용하면 조건자를 사용할 수 있습니다 -fstype
.
find / -fstype nfs -prune -o \( -nouser -o -nogroup \) -print
그렇다면 hymie의 접근 방식이 더 의미가 있을 것입니다. 즉, 검색하고 싶지 않은 FS를 블랙리스트에 추가하는 대신 검색하려는 FS를 화이트리스트에 추가하는 것입니다.
jfs2
파일 시스템 만 포함하려면 ( /
에 있다고 가정 jfs2
) 다음과 같이 작성해야 합니다.
find / ! -fstype jfs2 -prune -o \( -nouser -o -nogroup \) -print
다음과 같이 쓰지 마세요:
find / -fstype jfs2 \( -nouser -o -nogroup \) -print
이는 jfs2가 아닌 파일 시스템의 파일이 인쇄되는 것을 방지하지만 find
jfs2가 아닌 파일 시스템을 크롤링하는 것을 막지는 않습니다(필요합니다 -prune
).
알아채다 -a
(그리고-o
생략된 경우 암시)가 ( 보다 우선합니다 .또는)이므로 괄호가 필요한지주의를 기울여야합니다.
~ 위에옳은명령 약어는 다음과 같습니다.
find / \( \( ! -fstype jfs2 \) -a -prune \) -o \
\( \( -nouser -o -nogroup \) -a -print \)
답변3
답변4
특정 찾기 옵션을 시도했지만 문제가 발생하여 다음 방법으로 전환했습니다.
find $(mount | awk '!/:/ {printf "%s ", $3}') -xdev
NFS가 마운트되지 않은 모든 파일 시스템을 검색해야 합니다.