유닉스 / 리눅스 찾기로 검색 할 때 숨겨진 파일을 제외 하시겠습니까?


35

find숨겨진 파일을 제외 하려면 어떤 옵션을 사용해야 합니까?


4
따로 : 이 작업에 대해 특별한 지원이없는 이유 는 앞에 '.'로 이름이 지정된 파일에 대해 특별한 것이 있기 때문입니다. ls특별히 요청하지 않는 한 목록이 표시되지 않는다는 것입니다 . 파일은 모든면에서 완전히 일반 파일이며 ls기본적으로 무시할 수 있습니다.
dmckee

2
질문 : 당신은 같은 것을 숨기고 싶 .hidden/visible.txt습니까?
Keith Thompson

답변:


14

나는 이것을 여기서 발견 했다 :

find . \( ! -regex '.*/\..*' \) -type f -name "whatever"

왜 안돼 \( ! -name '.*' \)?
grawity

@ grawity 나는 방금 그것이 어떻게 작동하는지 완전히 모른다는 것을 알았습니다. 숨겨진 파일뿐만 아니라 숨겨진 디렉토리와 모든 하위 컨텐츠 및 숨겨진 파일을 하위 폴더에 숨기겠습니까?
Jarvin

5
아니요, 그렇지 않습니다 \( ! -path '*/.*' \).
grawity

@grawity Ya, 나는 OP가 무엇을 원했는지에 대한 가정을했다고 생각합니다. 귀하의 이름 솔루션은 아마도 그들이 요구 한 것에 가장 가깝습니다.
Jarvin

@ grawity & Dan : 그렇지 않습니까 (! -path '^. *') ?? 귀하의 솔루션은 '.'가있는 파일을 무시합니다. 어디 a.exe를 같은 파일 이름, B.OUT 등 ...
기계공 소프트웨어

13

부정 glob 패턴이 잘 알려져 있지 않은 것 같습니다. 따라서 다음을 사용할 수 있습니다.

find . -name "[!.]*"

12

이것은 귀하의 질문에 대답하지 않지만 숨겨지지 않은 파일을 찾는 작업을 위해 모든 파일을 찾은 다음 grep으로 필터링하고 싶습니다.

find . -type f | grep -v '/\.'

당신의 접근 방식과 비슷하지만 조금 더 간단합니다.


이것은 나를 위해 일한 하나의 라이너 중 하나였습니다.
entpnerd

7

다음 find사용법을 시도하십시오 .

find . -type f -not -path '*/\.*'

모든 숨겨진 파일 (점으로 시작하는 파일 및 디렉토리)을 무시합니다.


1

findnh웹에서 찾을 수 있었던이 질문에 대한 답변보다 특정 사례를 더 잘 처리한다고 생각되는 스크립트를 작성했습니다 .

#!/bin/bash

declare -a paths

while [ $# -ne 0 ]; do
  case "$1" in -*) break ;; esac
  paths+=("$1")
  shift
done

find "${paths[@]}" \( -name . -o -name .. -o \! \( -name '.*' -prune \) \) "$@"

예를 들어, 내부와 같은 명령을 명시 적으로 지정 숨겨진 디렉토리의 비 숨김 파일 및 디렉토리를 찾을 수 있습니다 findnh ~/.hiddendir/보여줍니다, ~/.hiddendir/file하지만를 ~/.hiddendir/.superhiddenfile.


1
좋은 코딩. 내가 시도 findnh ~/.hiddendir/하면 아무것도 얻지 못한다. 그 외에는 방법에서이 다른 ! -path '*/.*'과는 find … | grep -v '/\.'?
G-Man, 'Reinstate

1

당신이 인으로 삼고 경우 findgrep, ripgrep기본, 예에 의해 숨겨진 파일을 제외하지

rg --files

--files 실제로 검색을 수행하지 않고 검색 할 각 파일을 인쇄하십시오.


1

fd

fd에 대한 간단하고 훨씬 빠르고 사용자 친화적 인 대안 인를 사용하십시오 find. 기본적으로

  • 숨겨진 디렉토리 및 파일은 기본적으로 무시합니다.
  • .gitignore기본적으로의 패턴을 무시합니다 .

벤치 마크 분석을 확인하십시오 .


1

숨겨진 파일을 찾으려면

find -name '[.]*'

보이는 파일을 찾으려면

find -name '[!.]*'

그렇게 간단합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.