Linux 명령 줄에있는 파일 / 디렉토리를 어떻게 찾을 수 있습니까?
이상적으로는 다음과 같은 프로그램을 사용할 수 있습니다.
find [file or directory name]
파일 이름 / 디렉토리가 일치하는 경로를보고합니다. 불행히도 이것은 전체 폴더가 아닌 현재 디렉토리 만 확인하는 것 같습니다.
나는 또한 찾기를 시도했지만 컴퓨터 어딘가에 있음에도 불구하고 파일을 찾지 못했습니다.
"안타깝게도 전체 폴더가 아닌 현재 디렉토리 만 확인하는 것 같습니다." 아마도 당신은 그것이 하위 디렉토리에서 보이지 않는다는 것을 의미합니다. 이 문제를 해결하려면find -name "filename"
문제의 파일이 현재 작업 디렉토리에 없으면 다음을 통해 전체 시스템을 검색 할 수 있습니다.
find / -name "filename"
이것은 find / -name "*.pdf"
, 등과 같은 것들에서도 작동합니다 . 때때로 나는 그것을 grep 문으로 파이프하는 것을 좋아합니다 (적어도 내 컴퓨터에서는 결과가 강조 표시되기 때문에) 그래서 나는 다음과 같은 결과를 얻습니다.
find / -name "*star*wars*" | grep star
이 방법이나 비슷한 방법을 사용하면 파일 이름을 즉시 찾고 내가 찾고있는 파일인지 인식 할 수 있습니다.
일부 디렉토리에서 중첩을 찾아야하는 경우 :
find / -type f -wholename "*dirname/filename"
또는 연결된 디렉토리 :
find / -type d -wholename "*foo/bar"
이 find
명령은 시간이 오래 걸리며 파일을 검색하는 가장 빠른 방법 locate
은 색인화 된 데이터베이스 (command로 업데이트 됨)에서 파일 이름 (및 경로)을 찾는 명령을 사용 하는 것입니다 updatedb
.
결과는 간단한 명령으로 즉시 나타납니다.
locate {file-name-or-path}
명령을 찾을 수없는 경우 먼저 mlocate
패키지 를 설치 하고 updatedb
명령을 실행 하여 검색 데이터베이스를 처음으로 준비해야합니다.
권한 오류 등을 제거하려면 stderr을 아무데도 리디렉션하지 마십시오.
find / -name "something" 2>/dev/null
아래 예는 현재 디렉토리에서 특정 폴더를 찾는 데 도움이됩니다. 이 예제는 현재 직접 검색하고 현재 디렉터리에서 사용 가능한 하위 디렉터리를 검색합니다.
#!/bin/bash
result=$(ls -d operational)
echo $result
test="operational"
if [ "$result" == "$test" ]
then
echo "TRUE"
else
echo "FALSE"
fi
찾고있는 명령 파일 인 경우 가장 빠르고 정확한 방법은
which "commandname"
시스템에 동일한 이름을 가진 파일이 많은 경우에도 명령에 사용되는 실제 파일이 표시됩니다.
'programing' 카테고리의 다른 글
pushState : 상태 객체는 정확히 무엇입니까? (0) | 2021.01.14 |
---|---|
mongodb에서 findOne을 사용하여 최대 ID를 가진 요소 가져 오기 (0) | 2021.01.14 |
AutoCloseable을 사용하여 여러 리소스 닫기 (리소스로 시도) (0) | 2021.01.14 |
Localhost 용 Googlemaps API 키 (0) | 2021.01.14 |
Windows에서 pip가 사용하는 CA 저장소에 사용자 지정 CA 루트 인증서를 추가하는 방법은 무엇입니까? (0) | 2021.01.14 |