Linux에서 fd 명령을 사용하는 방법
게시 됨: 2022-01-29 Linux에서 fd
는 find
명령의 더 쉬운 대안입니다. 단순화된 구문을 사용하고 합리적인 기본값을 사용하며 상식적인 동작이 내장되어 있습니다. 그 속도를 따라가 봅시다.
fd 대 찾기: 차이점은 무엇입니까?
fd
명령은 Linux에서 영원히 사용되었던 기존의 find
명령을 대체하기 위한 것이 아닙니다. 대신 fd
는 find
의 일반적인 사용 대부분을 보다 직접적인 방법으로 만족시키려고 시도합니다. 그리고 find
보다 8~9배 더 빠릅니다. 프로젝트의 GitHub 리포지토리 페이지에서 벤치마크 중 일부를 볼 수 있습니다.
fd
는 일부 ls
모드의 출력과 유사한 색상이 지정된 출력을 갖습니다. 재귀적이지만 기본적으로 숨겨진 디렉토리를 검색하지 않습니다. Git에 대해 알고 있으며 ".gitignore" 파일의 모든 패턴도 자동으로 무시합니다.
fd
는 기본적으로 대소문자를 구분하지 않습니다. 그러나 검색 패턴에 대문자가 포함된 경우 fd
는 대소문자를 구분하는 모드로 작동합니다. 물론 기본값을 무시할 수 있지만 대부분의 경우 사용자에게 유리하게 작동합니다.
관련: 모든 Linux의 검색 명령을 사용하는 방법
fd 설치
Ubuntu 19.04(Disco Dingo)부터 공식적으로 유지 관리되는 패키지를 apt-get
으로 호출하여 직접 fd
를 설치할 수 있습니다. 이전 버전의 Ubuntu를 실행 중인 경우 Git 허브 페이지에서 설치 지침을 확인하십시오.
다음을 입력합니다.
sudo apt-get install fd-find
Ubuntu에서 명령은 다른 기존 유틸리티와의 이름 충돌을 피하기 위한 fdfind
입니다. fd
가 되도록 하려면 별칭을 설정할 수 있습니다.
별칭 fd=fd찾기
재부팅 후에도 계속 사용할 수 있도록 별칭을 유지하려면 ".bashrc" 또는 ".bash_aliases" 파일에 넣습니다.
관련: Linux에서 별칭 및 셸 함수를 만드는 방법
Fedora에 fd
를 설치하려면 다음 명령을 입력하십시오.
sudo dfn 설치 fd 찾기
Manjaro에서 다음을 입력합니다.
sudo pacman -Syu fd
fd 대 fdfind
혼란을 피하기 위해 Ubuntu 테스트 PC에 기본 이름인 fdfind
를 그대로 두었습니다. fd
와 fdfind
는 다음 예에서 볼 수 있듯이 완전히 동일한 명령입니다( fdfind
에 버전을 표시하도록 요청하면 자체적으로 "fd"라고 함).
fdfind --버전
명령을 "fed"라고 부르지만 예제에서는 Ubuntu "fdfind"를 사용합니다. 다른 Linux 배포판에서는 "fdfind" 대신 "fd"를 입력하여 몇 번의 키 입력을 저장할 수 있습니다.
fd를 사용한 단순 검색
명령줄 옵션 없이 fd
를 사용하면 기본적으로 하위 디렉터리에 파일을 나열한다는 점을 제외하고는 ls
와 약간 비슷하게 작동합니다.
다음을 입력합니다.
fd찾기
출력은 파일 유형 및 디렉토리에 따라 다른 색상으로 나타납니다.
특정 유형의 파일을 보려면
(확장자) 옵션을 사용하십시오. 확장자 앞에 마침표(.)를 붙일 필요도 없고 대소문자를 구분하지도 않습니다.-e
예를 들어 다음을 입력할 수 있습니다.
fdfind -e png
이제 나열된 유일한 파일은 PNG 이미지 파일입니다.
단일 파일을 찾으려면 다음과 같이 명령줄에 파일 이름을 입력합니다.
fdfind index.page
파일이 발견되어 하위 디렉토리에 있습니다. f에게 fd
적으로 검색하도록 지시할 필요가 없었습니다.
특정 디렉토리에서 검색을 시작하려면 명령줄에 파일 경로를 포함하십시오. 다음 명령은 "/etc" 디렉토리에서 검색을 시작하고 파일 이름에 "passwd"가 포함된 파일을 찾습니다.
fd패스워드 찾기 /etc
여기에서 파일 이름에 "coord"가 포함된 모든 C 소스 코드 파일을 검색합니다.
fdfind -ec 좌표
두 개의 일치하는 파일이 발견되었습니다.
fd와 힘내
Git은 매우 인기 있는 소스 코드 버전 관리 시스템입니다. 컴퓨터에서 Git을 사용하는 경우 ".gitignore" 파일을 사용하여 Git이 어떤 파일과 관련되어야 하고 어떤 파일을 무시할 수 있는지 알려줍니다. 기본적으로 fd
는 ".gitignore" 파일의 설정을 따릅니다.
이 디렉토리에는 Git 저장소와 ".gitignore" 파일이 있습니다. 다음을 입력합니다.
ls -adl .git*
fd
에게 파일 이름에 "coord"가 포함된 파일을 나열하도록 요청합시다. 그런 다음 검색을 반복하고 -I
(무시하지 않음) 옵션을 사용합니다. 이것은 fd
가 ".gitignore" 파일의 설정을 무시하고 일치하는 모든 파일을 보고하도록 지시합니다.
이 모든 작업을 수행하려면 다음을 입력합니다.
fd찾기 좌표
fd찾기 좌표 -I
두 번째 결과 집합에 있는 두 개의 추가 파일은 개체 파일입니다. 파일 프로그램이 컴파일될 때 생성됩니다. 그런 다음 링커에서 프로그램의 최종 실행 버전을 만드는 데 사용합니다.
개체 파일은 일반적으로 소스 코드 버전 제어 프로그램에서 무시됩니다. 프로그램을 컴파일할 때마다 다시 생성되므로 복사본을 저장할 필요가 없습니다. ".gitignore" 파일에는 Git이 개체 파일을 무시하도록 지시하는 항목이 있으며, 기본적으로 fd
도 개체 파일을 무시합니다.
-I
(무시하지 않음) 옵션은 ".gitginore" 파일에 의해 안내되지 않고 fd
가 찾은 모든 것을 반환하도록 합니다.
파일 형식 및 대소문자 구분
fd
에게 디렉토리, 파일(실행 가능하고 비어 있는 파일 포함), 심볼릭 링크를 찾도록 요청할 수 있습니다. -t
(유형) 옵션 다음에 아래 문자 중 하나를 사용하면 됩니다.
- f : 파일.
- d : 디렉토리.
- l : 심볼릭 링크.
- x : 실행 파일.
- e : 빈 파일.
다음은 images라는 디렉토리를 찾습니다.
fdfind -td 이미지
일치하는 항목이 발견되었습니다. 현재 디렉토리보다 한 하위 디렉토리가 낮습니다.
대소문자 구분이 검색 패턴에서 어떻게 작동하는지 봅시다. 먼저 파일 이름에 "geo"가 포함된 파일을 검색한 다음 파일 이름에 "Geo"가 포함된 파일을 검색하기 위해 다음을 입력합니다.
fdfind -tf 지역
fdfind -tf 지역
첫 번째 명령에서 소문자 검색 패턴을 사용하여 fd
가 대소문자를 구분하지 않는 방식으로 작동하도록 했습니다. 이는 "지역"과 "지역"이 모두 유효한 일치 항목임을 의미합니다.
두 번째 명령에는 대문자가 포함되어 있어 fd
가 대소문자를 구분하는 방식으로 작동합니다. 이는 "지역"만 유효한 일치 항목임을 의미합니다.
명령 실행
fd
명령을 사용하면 다른 명령을 실행하고 발견된 각 파일에서 실행할 수 있습니다.
소스 코드 디렉토리 트리 어딘가에 Zip 파일이 있다는 것을 알고 있다고 가정해 보겠습니다. ZIP 확장자를 가진 파일을 검색하는 다음 명령을 사용하여 찾을 수 있습니다.
fdfinf -e zip
-x
(exec) 옵션을 사용하면 발견된 각 파일을 다른 명령에 전달하여 처리할 수 있습니다. 예를 들어, 다음을 입력하여 압축 해제 유틸리티를 호출하여 ZIP 파일의 압축을 풀 수 있습니다("{}"는 찾은 파일을 나타내는 자리 표시자임).
fdfind -e zip -x 압축 풀기 {}
이것은 현재 작업 디렉토리에서 파일의 압축을 풉니다. ZIP 파일이 포함된 디렉토리에서 압축을 풀려면 다음 자리 표시자 중 하나를 사용할 수 있습니다.
- {} : 찾은 파일의 전체 파일 경로와 이름.
- {/} : 찾은 파일의 파일 이름입니다.
- {//} : 찾은 파일이 포함된 디렉터리입니다.
- {/.} : 찾은 파일의 확장자 없이 파일명.
ZIP 파일이 포함된 디렉터리에서 찾아 압축을 풀려면 unzip -d
(디렉터리) 옵션을 사용하고 상위 디렉터리 자리 표시자( {//}
)를 전달할 수 있습니다.
fdfind -e zip -x 압축 풀기 {} -d {//}
그런 다음 ZIP 파일을 찾고 상위 디렉토리에 압축을 풉니다.
당신의 이동 찾기?
가장 일반적인 용도를 간단하게 다루기 때문에 fd
는 쉽게 "찾기" 명령이 될 수 있습니다. 더 고급 기능이 필요할 때마다 언제든지 노련한 베테랑 find
로 돌아갈 수 있습니다.
리눅스 명령어 | ||
파일 | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · 보기 · 문자열 · 유형 · 이름 바꾸기 · zip · 압축 풀기 · 마운트 · 언마운트 · 설치 · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · 패치 · 변환 · rclone · 파쇄 · srm | |
프로세스 | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · 종료 · 재부팅 · 정지 · poweroff · passwd · lscpu · crontab · 날짜 · bg · fg | |
네트워킹 | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
관련: 개발자 및 열광자를 위한 최고의 Linux 노트북