Hostwinds 튜토리얼
에 대한 검색 결과:
목차
태그 : Cloud Servers, Dedicated Server
이 튜토리얼에서는 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 -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'
각 명령 및 옵션에 대한 자세한 설명은 다음과 같습니다.
이 모든 것을 종합하면 다음과 비슷한 출력이 발생합니다.
위에서는 이론적으로 복사 된 모든 파일을 볼 수 있습니다. ~/백업.모든 파일이 실제로 복사 된 것은 아닙니다.
이것은 중요한 점입니다. 표시와 관련하여 문제가 없었습니다. 통계 관련 정보이지만 문제가있었습니다 CP 명령 (보고되지 않음).
다음으로 하나 이상의 키워드를 찾기 위해 일치 파일의 내용을 검색합니다.우선, 우리는 모든 것을 조사 할 것입니다 *.통나무 발생을위한 파일 경고.그렇게하기 위해, 우리는 유비쿼터스를 사용합니다 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