조건이있는 재귀 ls


16

디렉토리와 하위 디렉토리에서 모든 pdf 파일을 찾기 위해 이와 같은 명령을 사용할 수없는 이유는 무엇입니까? 어떻게합니까? (우분투에서 bash를 사용하고 있습니다)

ls -R *.pdf

편집하다

그런 다음 이러한 파일을 모두 삭제하려면 어떻게해야합니까?

답변:


22

디렉토리와 하위 디렉토리에서 모든 pdf 파일을 찾기 위해 이와 같은 명령을 사용할 수없는 이유는 무엇입니까?

*.pdf명령 의 와일드 카드 는 실행 하기 전에bash 현재 디렉토리의 모든 일치하는 파일로 확장됩니다 .ls


어떻게합니까? (우분투에서 bash를 사용하고 있습니다)

당신의 답을 찾으십시오.

find . -name \*.pdf

pdf 파일의 재귀 목록입니다. -iname대소 문자를 구분하지 않으므로

find . -iname \*.pdf

예를 들어 모든 .pdf 파일을 나열합니다. foo.PDF

또한 제한된 수의 하위 폴더에 ls를 사용할 수 있습니다.

ls *.pdf */*.pdf

하위 폴더에서 모든 pdf 파일을 찾습니다 (bar / foo / asdf.pdf가 아니라 bar / foo.pdf와 일치하고 foo.PDF와 일치하지 않음).

find로 찾은 파일을 제거하려면

find . -iname \*.pdf -delete

1
ls -l파일 크기, 소유권, 날짜 등을 보여주는 명령 과 유사한 출력을 원할 경우 다음 find과 같은 -ls옵션을 사용할 수 있습니다.find . -name \*.pdf -ls
RFVoltolini

2

다른 사람들이 말했듯이, 그 답을 찾으십시오.

이제 다른 부분에 대답하십시오.

  • 그런 다음 이러한 파일을 모두 삭제하려면 어떻게해야합니까?

    찾기 . -iname * .pdf -exec rm {} \;

해야합니다.


2
조기 확장되지 않도록 글로브를 인용해야합니다.
추후 공지가있을 때까지 일시 중지되었습니다.

1

ls 대신 find를 사용하십시오.

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