Linux에서 "install"명령을 사용하여 파일을 복사하는 방법

0
511
우분투 리눅스 데스크탑에서의 배쉬 컨셉 아트
Fatmawati Achmad Zaenuri / Shutterstock.com

install Linux 및 macOS의 다목적 파일 복사 명령입니다. 효율성을 찾는 고급 사용자에게 적합합니다. 이 기사를 읽고 더 똑똑하게 일하는 방법을 알아보십시오.

잠깐만 — 소프트웨어를 설치하는 것이 아닙니까?

그만큼 install 명령은 Linux 명령 중 가장 잘못된 이름을 가질 수 있습니다. 실제로 어떤 소프트웨어도 설치하지 않습니다. Ubuntu 또는 다른 데비안 기반 배포판의 명령 줄에서 소프트웨어 패키지를 설치하려는 경우 apt-get 명령. 다른 Linux 배포에서는 Linux 배포의 패키지 관리 도구를 대신 사용하십시오 (예 : dnf 페도라 또는 zypper openSUSE에서.

그래서 무엇을 설치합니까?

간단히 말해서 install 의 요소를 결합 cp (부), chown (소유자 변경) chmod (변경 모드), mkdir (디렉토리 만들기) strip (스트립 기호) 명령. 한 번의 작업으로 모든 기능을 사용할 수 있습니다.

그만큼 install 명령은 다음을 수행 할 수 있습니다.

  • 같은 파일을 복사 cp 명령.
  • 기존 파일을 덮어 쓸지 여부를 선택하십시오.
  • 대상 디렉토리가없는 경우 작성하십시오. mkdir.
  • 다음과 같이 파일의 사용자 권한 플래그를 설정하십시오. chmod 명령.
  • 파일 소유자를 다음과 같이 설정하십시오. chown 명령.
  • 다음과 같이 실행 파일에서 필수적이지 않은 수하물을 제거하십시오. strip 명령.

모든 기능에도 불구하고 install 명령에 너무 많은 옵션이 없습니다.

매뉴얼 페이지 설치

언제 사용하겠습니까

그만큼 install 명령은 매일 사용되지 않을 것입니다. 유용하지만 특정 상황에서만 유용합니다. 하나의 시나리오 install 소프트웨어 개발 자체가 시작됩니다. 새로운 유틸리티를 프로그래밍한다고 가정 해 보겠습니다. 개발 환경 외부에서 테스트를 수행해야합니다. 그렇게하려면 새 프로그램 파일을 테스트 디렉토리에 복사해야합니다. 테스트 디렉토리를 작성해야 할 수 있으며 파일에 대한 올바른 권한 및 소유권을 설정해야합니다.

개발은 반복적 인 활동이므로이 일련의 작업을 여러 번 수행 할 수 있습니다. 그만큼 install 명령은 당신을 위해 모든 무거운 리프팅을합니다. 마지막으로, 새 유틸리티를 배포 할 준비가되면 install 올바른 작업 권한으로 최종 작업 위치에 복사합니다.

프로그래머는 이러한 새로운 유틸리티를 개발 중입니다. ana. 실행 가능한 이진 파일과 데이터베이스로 구성됩니다. 테스트 후에는 반드시 /usr/local/bin Linux 시스템의 모든 사용자가 사용할 수 있도록합니다. 이 예에서는 파일 이름 및 디렉토리 경로를 컴퓨터에서 사용중인 파일 및 경로로 대체해야합니다. install.

출시 준비가 될 때까지는 다음 디렉토리에서 테스트됩니다. ~/test/ana. 의 회원 geek 그룹은 읽기 및 실행 권한을 갖습니다. 다른 사용자에게는 읽기 및 실행 권한도 있습니다. 그만큼 install 명령은 권한과 동일한 숫자 표현을 사용합니다. chmod 그렇습니다. 프로그래머가 권한을 다음과 같이 설정해야한다고 결정했습니다.

  • 소유자 : 읽고 쓰고 실행합니다.
  • 그룹 : 읽고 실행하십시오.
  • 기타 : 실행 만.

사용 방법 install 명령

가상의 프로그래머의 작업 디렉토리는 ~/work. 그는 프로그램을 작성하고 컴파일하여 ana. 그는 이미 데이터베이스 파일을 만들었습니다. ana 와 일하다, Words.db. 따라서 두 파일 모두 테스트 할 준비가되었습니다. 그것들을 살펴 봅시다 :

ls -l ana Words.db

그만큼 ana 그가 방금 작성한 유틸리티는 명령 행에 제공된 구문으로 아나그램을 작성합니다. 검증 테스트는 매우 간단합니다.

작업 디렉토리에서 아나 유틸리티 테스트

프로그래머가 ana “비스킷”이라는 문구로 모두 잘 보입니다. 그는 이제이 두 파일을 ~/test/ana 새 유틸리티가 개발 환경에서 올바르게 작동하는지 확인하십시오. 그는 다음 명령을 발행합니다.

install -D -v ana Words.db -t ~/test/ana

/ test / ana에 설치 명령

명령 행에 사용 된 옵션은 다음과 같습니다.

  • : 필요한 경우 상위 디렉토리를 포함하여 디렉토리를 작성하십시오.
  • V: 상세, 각 디렉토리를 작성하고 각 파일을 수행 할 때 복사하십시오.
  • : 대상 디렉토리.

우리는 그것을 볼 수 있습니다 install 를 만듭니다 ~/test 디렉토리를 만든 다음 ~/test/ana 예배 규칙서. 파일이 대상 디렉토리에 복사 될 때 파일이 하나씩 나열됩니다.

파일 나열 ~/test/ana 올바르게 복사되었는지 확인합니다.

ls -l

/ test / ana 디렉토리의 ls

다음 단계는 ana 유틸리티를 호출하여 ~/test/ana 예배 규칙서.

/ test / ana 디렉토리의 아나 유틸리티 테스트

이 유틸리티는 예상대로 작동합니다. 그러나 권한이 올바르지 않습니다. 요구 사항은 그룹의 구성원을 설정하는 것입니다 geek 읽기 및 실행 권한이 있어야하며 다른 사용자 만 실행할 수 있습니다.

다음 명령을 사용하여 이러한 문제를 매우 간단하게 해결할 수 있습니다. 참고의 사용 sudo 루트 권한으로 명령을 실행합니다. 그만큼 -o-g 옵션이 필요합니다. 명령을 실행할 때 비밀번호를 묻는 메시지가 표시됩니다.

sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

백업 옵션 및 사전 설정으로 설치 명령

  • 그만큼 -b (백업) 옵션은 파일을 덮어 쓰기 전에 파일의 백업을 만듭니다.
  • 그만큼 -S (접미사) 옵션은 백업 파일의 접미사를 정의합니다. 접미사를 제공하지 않으면 ~ (물결표)가 사용됩니다. 우리는 묻는다 install 접미사를 사용하려면 .bak.
  • 파일의 소유자를 dave 사용하여 -o (소유자) 옵션.
  • 그만큼 -g (그룹) 옵션에는 그룹 이름이 필요합니다. 파일의 소유자 그룹이됩니다. 우리가 사용할 그룹을 geek.
  • 그만큼 -m (mode) 옵션은 표준을 사용하여 파일의 파일 모드를 설정합니다 chmod 숫자 구문.

더 이상 사용할 필요가 없습니다 -D 테스트 디렉토리가 이미 존재하므로 (디렉토리 작성) 옵션을 선택하십시오. 우리는 또한 생략했습니다 -v (자세한) 옵션. 우리의 파일 나열 ~/test/ana 디렉토리는 파일 세부 정보를 보여줍니다.

ls -l

/ test / ana 디렉토리의 ls

이로써 모든 요구 사항이 충족되었음을 확인할 수 있습니다.

  • 파일이 테스트 디렉토리로 복사되었습니다.
  • 권한이 올바르게 설정되었습니다.
  • dave 파일의 소유자입니다.
  • 그만큼 geek group은 두 파일의 소유자 그룹입니다.
  • ana.bak 및 Words.db.bak라는 각 파일로 백업 사본이 작성되었습니다.

모든 것은 하나의 명령을 사용하여 달성되었습니다. 산뜻한.

프로그래머가 유틸리티를 마지막으로 변경하고 다시 컴파일합니다. 변경된 파일은 ~/test/ana 의 디렉토리 ~/work 예배 규칙서. 우리는 이것을 사용하여 이것을 할 수 있습니다 -C (비교) 옵션. 소스 파일과 대상 파일이 동일하면 소스 파일이 복사되지 않습니다.

sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

-C 비교 옵션을 사용하여 설치 명령

대상 디렉토리에 파일을 나열하면 파일 크기가 ana 파일이 변경되었습니다. 보다 큽니다 ana.bak파일. 타임 스탬프 ana 또한 변경되었습니다. 이러한 변경 사항은 새 버전의 파일이 여기에 복사 되었기 때문입니다.

ls -l

test fo ana 유틸리티와 함께 ​​/ test / ana의 ls

파일 크기 및 타임 스탬프 Words.db 파일이 변경되지 않았습니다. 변경 사항이 없습니다 Words.db 파일이 복사되지 않았습니다. 많은 파일이있는 프로젝트에서 -C (비교) 옵션은 변경된 파일 만 복사하여 많은 시간과 하드 드라이브 이탈을 줄일 수 있습니다.

프로그래머는 다시 ana 유틸리티가 계속 작동합니다.

사용할 시간이다 install 파일을 /usr/local/bin 예배 규칙서. 그러면이 Linux 컴퓨터의 모든 사용자가 새 유틸리티를 사용할 수 있습니다. 우리는 알고 /usr/local/bin 존재하므로 해당 디렉토리를 만들 필요가 없습니다. 마지막 명령의 수정 된 버전을 사용할 수 있습니다.

대상 디렉토리를 다음과 같이 변경했습니다 /usr/local/bin. 우리는 -C 대상 디렉토리에 이러한 파일의 사본이 아직 없으므로 비교할 옵션이 없으므로 (비교) 옵션입니다. 마찬가지로 백업 할 것이 없으므로 제거 할 수 있습니다. -b (백업) 옵션 및 -S (접미사) 옵션.

sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin

/ usr / local / bin에 파일 복사 설치

파일이 도착한 것을 나열 할 수 있습니다 /usr/local/bin:

ls -l

/ usr / local / bin의 ls

마지막 테스트로 디렉토리를 홈 디렉토리로 변경하고 거기에서 새 유틸리티를 호출 할 수 있는지 확인하십시오.

아나 유틸리티 테스트

우리는 ana 명령 ./ 그것은 그것이 실행되고 있음을 의미합니다 /usr/local/bin. 임무 완수.

우리는 install이 바이너리 파일 내에서 여분의 심볼 테이블과 다른 수하물을 제거하여 크기를 줄일 수 있다고 언급했습니다. 지금 해봅시다. 아래 명령에는 Words.db가 포함되어 있지 않습니다. Words.db는 이진 실행 파일이 아닌 데이터베이스 파일이기 때문입니다. 이진 파일을 복사하고 축소하려면 ana 다음 명령을 사용할 수 있습니다. 소문자“s”와 함께 -s (shrink) 옵션을 추가했습니다. 대문자“S”와 함께 -b (백업) 옵션과 -S (접미사) 옵션을 다시 추가했습니다.

sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin

-s strip 옵션이있는 설치 옵션

파일 나열 /usr/local/bin 우리가 크기를 비교할 수 있습니다 ana 백업 버전이 포함 된 파일입니다. 그만큼 ana 파일이 이전 크기의 거의 60 %로 줄었습니다.

ls -l /usr/local/bin

작업 디렉토리의 ls

요약해서 말하자면

install 명령은 틈새 사용에 적합합니다. 많은 사람들이 매일 매일 또는 한 달에 한 번씩 사용하지 않을 것입니다. 그럼에도 불구하고 install 명령은 당신의 트릭에 익숙하고 가지고있는 좋은 도구입니다. 필요할 때마다 효율성, 단순성 및 키 입력 횟수를 줄임으로써 학습 곡선에 보상합니다.