ls의 대안 |

ls의 대안 |

특정 폴더의 파일과 디렉터리를 검색하려고 합니다. 예를 들어, 저는 /usr/bin바이너리 를 찾고 있습니다 python. 이를 위해 를 사용했는데 , 예를 들어 , , 등을 ls | grep python찾을 수 있었습니다.python3python3-config

이것이 잘 작동하지만 더 쉬운 방법이 있다는 것을 알고 있습니다. 로 파이프할 필요가 없습니다 . 그러나 맨 페이지에서 이해 한 바에 따르면 grep시도해 볼 때 결과가 없습니다.find . -name pythonfind

grep파일 검색 에 대해 알고 있습니다 . 특정 디렉토리를 검색하는 올바른 방법은 무엇입니까?

답변1

간단히 말해서 "globbing"으로 수행할 수 있는 몇 가지 작업이 있습니다. 쉘은 일치를 시도합니다.

? to any character, (unless it is "protected" by single or double quotes
* to any string of characters (even empty ones), unless protected by single or double quotes 
[abc] can match either 'a', 'b' or 'c'
[^def] is any single character different than 'd', 'e' or 'f'

따라서 /usr/bin 아래에 python이 포함된 항목을 일치시키려면 다음을 수행하세요.

ls -d /usr/bin/*python*  # just looks into that directory

또는 find에서 와일드카드를 사용할 수도 있습니다. 그러나 셸이 확장하지 않고 그대로 find 명령에 전달하도록 따옴표로 묶어야 합니다.

find /usr/bin -name '*python*'  # could descend into subfolders if present

관련 정보