Hostwinds 튜토리얼

에 대한 검색 결과:


목차


나열 파일
찾기
위치하고 있다
ls
금언
이름으로 검색
찾기
위치하고 있다
금언
크기 별 검색
찾기
위치하고 있다
금언
빈 파일 찾기
찾기
위치하고 있다
금언
파일 일치에서 작업 수행
찾기
위치하고 있다
금언
GREP 명령으로 검색을 개선합니다
결론

Ubuntu 22.04 LTS로 파일 찾기 및 행동

태그 : Dedicated Server,  Cloud Servers 

나열 파일
찾기
위치하고 있다
ls
금언
이름으로 검색
찾기
위치하고 있다
금언
크기 별 검색
찾기
위치하고 있다
금언
빈 파일 찾기
찾기
위치하고 있다
금언
파일 일치에서 작업 수행
찾기
위치하고 있다
금언
GREP 명령으로 검색을 개선합니다
결론

이 튜토리얼에서는 Ubuntu 20.04 LT에서 파일 및 디렉토리 (예 : 폴더)를 찾는 여러 가지 방법을 살펴 보겠습니다. .낡은 2GB보다 큰 모든 파일 및 디렉토리를 확장하거나 찾습니다.또한 발견 된 각 파일에서 하나 이상의 명령을 실행하는 방법도 살펴 보겠습니다.

우리가 사용할 명령 중 하나는 IS입니다 위치하고 있다기본적으로 우분투와 함께 오지 않습니다.그만큼 위치하고 있다 명령은 종종보다 빠릅니다 찾기 24 시간마다 업데이트되는 모든 파일의 데이터베이스를 유지하기 때문입니다.그만큼 위치하고 있다 명령은 다음과 같이 설치할 수 있습니다.

sudo apt install mlocate

Ubuntu를 포함한 Unix와 같은 운영 체제의 모든 것은 파일로 간주되므로 "파일"이라는 용어는 달리 호출되지 않는 한 "디렉토리"를 나타냅니다.또한 데스크탑 환경 예제는 기반입니다 금언.그놈을 사용하여 원격 우분투 컴퓨터에 액세스하는 방법을 배우려면 Ubuntu 20.04 TLS와 함께 Windows 원격 데스크탑 사용.

그것으로 시작합시다.

나열 파일

현재 디렉토리의 모든 파일을 나열하려면 다음 명령을 사용할 수 있습니다.

찾기

불완전한 찾기 명령은 현재 디렉토리에서 모든 파일을 재귀 적으로 나열합니다.

find

위치하고 있다

그만큼 위치하고 있다 명령은 유사합니다 찾기 그러나 패턴 (이 경우 와일드 카드 문자)이 필요합니다.

locate *


속도 위치하고 있다 그러나 가격으로 온다.최근에 수정 된 파일은 데이터베이스에 반영되지 않을 수 있습니다.이 문제를 해결하려면 데이터베이스를 Sudo 업데이트 (시간이 걸릴 수 있음) 또는 사용 -이자형 당시에 존재하는 파일 만 나열하는 옵션 위치하고 있다 명령은 실행됩니다 (본질적으로 동일합니다 찾기):

locate -e *

ls

재귀 사용 -아르 자형 옵션은 표준을 허용합니다 ls 유사한 결과를 생성하는 명령 :

ls -Rlha

금언

그놈 데스크탑 환경을 사용하여 유사한 결과를 얻을 수 있습니다.

이름으로 검색

다음 예에서는 모든 파일을 .낡은 확대.

찾기

우리는 모든 파일을 검색하기 때문에 sudo 권한 오류를 피하고 루트 디렉토리에서 검색을 시작하려면 명령 (/):

sudo find / -iname *.old


주목하십시오 -이름 옵션은 케이스를 무시합니다 -이름 하지 않습니다.

위치하고 있다

다음에서 -나 옵션은 사례를 무시합니다.

sudo locate -i *.old


흥미롭게도, 심지어 -이자형 옵션, 위치하고 있다 명령은 찾을 수 없습니다 /run/blkid/blkid/tab.old 파일 (반면 찾기 하다).

금언

와일드 카드 캐릭터없이 (*), Gnome Desktop Files 애플리케이션은 본질적으로 동일한 정보를 제공합니다. 찾기 명령:

크기 별 검색

50보다 큰 모든 파일을 찾고 싶다고 가정 해 봅시다. MIB.이 작업을 위해 다음을 추가 할 수 있습니다 가능성있는 용의자 목록에 명령 :

그만큼 명령은이 작업을 위해 특별히 설계되었습니다.

sudo du / -ha --threshold=50M

그만큼 -시간 옵션은 표준 (휴먼) 파일 크기를 제공합니다. -ㅏ 옵션에는 파일과 디렉토리가 포함됩니다.


(네 가지) 오류 메시지를 억제하려면 2>&- 논쟁.파일 크기로 정렬 할 수도 있습니다.

sudo du / -ha --threshold=50M 2>&- | sort -h


마지막 행은 디스크에 총 2.8 gib의 데이터가 포함되어 있음을 보여줍니다.

찾기

다음은 50 MIB보다 큰 모든 파일 (디렉토리 제외)을 찾습니다.

sudo find / -size +50M


각 파일의 크기를 바이트로 보려면 -LS 옵션 (및 2>&- 오류 메시지를 제거하려면) :

sudo find / -size +50M -ls 2>&-

7 번째 열은 각 파일의 크기를 바이트로 제공합니다.파일 경로, 유형 및 크기 만 보려면 -printf 그림과 같이 옵션 :

sudo find / -size +50M -printf "%p %y %s bytes\n" 2>&- | column -t


그만큼 %피 파일 이름을 반환합니다. %와이 파일 유형, %에스 바이트의 크기 및 \N Newline 캐릭터를 생성합니다 (자세한 내용은 실행하십시오 남자 찾기).

그만큼 열 -T 명령은 공백 문자를 기반으로 열을 만듭니다.140737477885952 바이트는 128 PIB 미만이며 분명히 부정확합니다.보다 정확한 표현은 다음과 같습니다.

sudo find / -size +50M -printf "%p %y %k KiB\n" 2>&- | column -t


위에서 %케이 KIB의 파일 크기를 제공합니다 ( %에스 바이트).

위치하고 있다

때문에 위치하고 있다 명령의 데이터베이스에는 파일 크기 정보가 포함되어 있지 않으므로 50 MIB보다 큰 파일을 나열 할 수 없습니다. 위치하고 있다.

금언

Gnome의 데스크탑 파일 응용 프로그램은 일반적인 것을 제공합니다 GUI 결과:

위에서 볼 수 있듯이 크기 열별로 정렬하는 것은 50 MIB보다 큰 모든 파일을 찾는 데 전적으로 도움이되지 않습니다.그만큼 또는 찾기 명령은 그러한 작업에 더 적합합니다.

빈 파일 찾기

위에서 언급 한 많은 명령에는 빈 파일을 찾기위한 옵션이 있습니다.우리는 이것을 다음에 조사 할 것입니다.

찾기

에 대한 찾기 명령,이 작업은 간단합니다.

sudo find /tmp -empty -type f,d

이 명령은 모든 빈 파일과 디렉토리를 찾습니다 (즉, -유형 f, d) 내 /tmp 그림과 같이 폴더 :


그러나 어느 것이 무엇입니까?위와 같이, 우리는 사용할 수 있습니다 -printf다음과 같이 :

sudo find /tmp -empty -type f,d -printf "%p %y %s bytes\n" | column -t


각 빈 디렉토리는 Ubuntu 파일 시스템에 존재하기 위해 4096 바이트 (4 kib)가 필요합니다.다음은 하나의 빈 디렉토리와 단일 빈 파일의 예입니다.

위치하고 있다

다시, 때문에 위치하고 있다 데이터베이스에는 파일 크기 정보가 포함되어 있지 않으며 위치하고 있다 명령.

금언

Gnome의 데스크탑 파일 응용 프로그램은 비교적이지 않은 결과를 제공합니다.

그놈 데스크탑 환경을 사용하여 빈 파일을 모두 식별하려면 많은 클릭을해야합니다.

파일 일치에서 작업 수행

이제 우리는 파일을 찾는 방법을 알았으므로 파일에 대한 조치를 수행 할 수 있습니다.모든 것을 삭제하는 것과 같은 *.낡은 파일.

찾기

그만큼 찾기 명령 -Exec 옵션은 일치하는 각 파일에 대해 제공된 명령을 한 번 실행합니다.예를 들어:

sudo find / -iname "*.old" -exec echo {} \;

간단히 말해서, 이것은 그것을 실행합니다 에코 각각에 명령 .낡은 파일이 발견되었습니다.여기, {} 구문은 각 일치하는 파일을 나타냅니다.따라서 if vmlinux.old 일치하는 파일, 그리고 명령입니다 echo vmlinux.old 실행됩니다.세미콜론은 다음을 따르는 명령 문자열의 끝을 나타내는 데 사용됩니다. -Exec 옵션.세미콜론에는 특별한 의미가 있으므로 백 슬래시 캐릭터와 함께 탈출해야합니다 (\), 다음과 같이 :


모든 것을 삭제합니다 *.낡은 파일의 파일 /홈/카를리토 디렉토리 (또는 ~ 디렉토리), 다음 명령을 실행할 수 있습니다.

sudo find . -iname "*.old" -exec rm -f {} \;

우리는 모든 파일을 볼 수 있습니다 ~ 디렉토리가 제거되었습니다.

위치하고 있다

그만큼 위치하고 있다 명령에는 An이 없습니다 -Exec 옵션.그러나이 기능을 사용 하여이 기능을 모방 할 수 있습니다 Xargs 명령:

sudo locate -i "*.old" | xargs -0 echo


그만큼 -0 옵션이 허용됩니다 Xargs 비정형 파일 이름 문자를 올바르게 처리합니다.

모든 것을 제거합니다 *.낡은 파일의 파일 /홈/카를리토 디렉토리, 실행할 수 있습니다.

sudo locate -i "/home/karlito/*.old" | xargs rm


마찬가지로, 모든 것을 제거합니다 .낡은 에 나열된 파일 위치하고 있다 명령의 데이터베이스 (일반적으로 모두 *.낡은 디스크 파일), 실행할 수 있습니다.

sudo locate -i "*.old" | xargs rm

금언

파일 응용 프로그램을 사용하여 동일한 작업을 수행하려면 먼저 모든 파일을 검색하십시오.낡은 확대:

다음으로 Ctrl + A를 눌러 일치하는 모든 파일을 선택한 다음 삭제 키를 누르고 지우다 단추:

다음과 같이 명령 프롬프트에서 삭제를 확인할 수 있습니다.


때문에 Xargs 명령은 빠르고 유연하며 다른 많은 명령과 함께 사용할 수 있으며 일반적으로 대부분의 시나리오에 사용하는 것이 합리적입니다.예를 들어, 다음은 "백업"을 포함하는 모든 파일을 사용자의 홈 폴더에서 "백업"이라는 디렉토리에 복사합니다.

sudo find / -type f -iname "*backup*" -print0 | xargs -0 -I {} sh -c 'stat -c "%n %s bytes" {}; cp {} ~/backups'

각 명령 및 옵션에 대한 자세한 설명은 다음과 같습니다.

  • sudo 허용 찾기 허가를받지 않고 검색 명령 거부 오류.
  • 찾기 파일을 검색하는 명령 (실행 남자 찾기 자세한 내용은).
  • / 루트 디렉토리에서 검색을 시작합니다.
  • -타입 f 파일 검색 (디렉토리가 아닌).
  • -iname "*백업*" 사건을 무시하는 동안 찾기 명령 파일 이름의 어딘가에 "백업"이 포함 된 모든 파일을 찾으려면 명령하십시오.두 사람의 사용에 주목하십시오 (*) 와일드 카드 문자.
  • -print0 형식의 출력 찾기 다른 명령에 의해 소비 될 수 있도록 명령 Xarg.특히, -print0 신자 라인이나 다른 유형의 공백이 포함 된 파일 이름을 그러한 입력을 처리 할 수있는 프로그램으로 올바르게 해석 할 수 있습니다.-print0 옵션은 -0 옵션의 옵션 Xargs 명령.
  • Xargs 표준 입력을 다른 명령에 대한 인수로 변환합니다. 통계CP 명령.
  • -0 준비합니다 Xargs 공백, 견적 표시 또는 백 슬래시가 포함 된 입력을 받도록 명령.
  • -나 자본 "I"옵션은 입력을 허용합니다. Xargs VIA와 같은 둘 이상의 장소에서 사용하려면 {} 토큰.
  • sh -c 이것은 별도의 명령 줄 통역사 (Shell)를 호출하고 전달 된 명령을 실행합니다.이 경우 'stat -c " %n %s 바이트"{};cp {} ~/백업 '.이 두 번째 쉘은 허용합니다 Xargs The를 사용하여 여러 명령을 실행합니다 {} 토큰.
  • stat -c " %n %s 바이트"{} 이름을 표시합니다 %N 그리고 크기 %에스 에 포함 된 파일의 {} 토큰 (바이트).
  • ; 세미콜론은 동일한 라인에서 두 개 이상의 명령을 실행할 수 있도록합니다.
  • cp {} ~/백업 주어진 것을 복사합니다 {} 파일 ~/백업 예배 규칙서.

이 모든 것을 종합하면 다음과 비슷한 출력이 발생합니다.

위에서는 이론적으로 복사 된 모든 파일을 볼 수 있습니다. ~/백업.모든 파일이 실제로 복사 된 것은 아닙니다.

이것은 중요한 점입니다. 표시와 관련하여 문제가 없었습니다. 통계 관련 정보이지만 문제가있었습니다 CP 명령 (보고되지 않음).

GREP 명령으로 검색을 개선합니다

다음으로 하나 이상의 키워드를 찾기 위해 일치 파일의 내용을 검색합니다.우선, 우리는 모든 것을 조사 할 것입니다 *.통나무 발생을위한 파일 경고.그렇게하기 위해, 우리는 유비쿼터스를 사용합니다 grep 명령:

sudo find / -iname '*.log' -type f -print0 | xargs -0 grep warning

파이프 전에 명령을 실행합니다 ( | ) 연산자는 예상되는 목록을 반환합니다 *.로그 파일.그러나 파일 권한 당 전체 명령 줄을 실행하여 거부 오류가 발생합니다.


이거 때문입니다 grep 명령도 필요합니다 sudo 높이.따라서 다음 명령 줄은 원하는 결과를 생성합니다 (둘 다 -이름-나 사례를 무시하십시오) :

sudo find / -iname '*.log' -type f -print0 | xargs -0 sudo -i grep warning

모든 것을 찾으려면 *.통나무 포함 된 파일 경고, 위독한및/또는 오류, 우리는 논리적 또는 ( | ) 연산자, 표준 파이프 연산자와 혼동되지 않도록 탈출해야합니다.

sudo find / -iname '*.log' -type f -print0 | xargs -0 sudo grep -l -i 'warning\|critical\|error'

소문자 "l"옵션 -엘 관련 컨텐츠가 아닌 일치하는 파일 목록을 표시합니다.

결론

이 튜토리얼은 Ubuntu 22.04 LTS에서 파일을 찾는 여러 가지 방법을 비교하고 대조했습니다.또한 찾은 파일에서 명령을 실행하는 기술도 제공했습니다.Ubuntu를 포함한 UNIX와 같은 운영 체제는 Ubuntu 컴퓨터/서버를 관리하는 데 도움이되는 매우 풍부한 명령 줄 환경을 제공합니다.

작성자 Karlito Bonnevie  /  유월 20, 2022