한 디렉토리에서는 파일을 찾고 다른 디렉토리에서는 파일을 찾지 않는 Unix 명령?

한 디렉토리에서는 파일을 찾고 다른 디렉토리에서는 파일을 찾지 않는 Unix 명령?

다른 디렉토리가 아닌 직접 구매한 파일을 찾는 유닉스 명령은 무엇입니까? 나는 파일 이름에만 관심이 있습니다.

감사해요.

답변1

나는 당신이 더 높은 수준의 디렉토리에서 이 검색을 수행하기를 원한다고 가정합니다. 그렇다면 -path옵션을 와 함께 사용할 수 있습니다 find.

예를 들어, 아래 디렉토리 구조가 주어지면

+---dir1/test1.txt
  |
  |--dir2/test1.txt

dir1에서 'test*'와 일치하는 파일을 찾으려면 다음을 사용하세요.

find -path '*dir1*' -iname 'test*'

답변2

두 디렉터리를 비교하려면 다음을 사용할 수 있습니다.

diff <(cd "$dir1"; find | sort) <(cd "$dir2"; find | sort)

단방향으로만 수행하고 파일 목록을 생성하려면 다음을 시도하십시오.

diff <(cd "$dir1"; find | sort) <(cd "$dir2"; find | sort) \
| grep '< ./' | sed "s,< ./,$dir1/,"

이것이 제대로 작동하려면 $dir1이나 $dir2에 후행 슬래시가 포함되어서는 안 됩니다.

관련 정보