Linux 파일 목록을 반복적으로 가져와서 파일로 직접 출력합니다.

Linux 파일 목록을 반복적으로 가져와서 파일로 직접 출력합니다.

저는 Ubuntu에서 i2b2용 소프트웨어를 구성하고 있으며 다운로드한 CentOS 이미지(아래 경로)에서 모든 관련 파일을 찾으려고 노력 중이며 현재 Windows VMWare Player(무료 다운로드)에서 실행 중입니다. 각 프로그램(예: JBoss, Java, Apache, Axis, Spring Web Framework, Oracle 등)에 대한 관련 파일을 찾을 수 있도록 CentOS 및 Ubuntu용 Linux 파일의 파일 계층 구조를 반복적으로 생성하고 싶습니다. .) 구성을 비교합니다. 나는 모든 파일의 출력을 얻어 Windows에서 비슷한 작업을 수행하는 방법을 알고 있습니다.

간단히 말해서 루트 폴더부터 시작하여 Linux 파일 시스템의 모든 파일을 덤프하고 파일에 저장하고 싶습니다.

Windows에서 이 작업을 수행하는 명령은 다음과 같습니다.

WINDOWS-COMMAND-PROMPT>dir /b /a /s >> files_on_windows.txt

인용하다:

http://www.i2b2.org> 소프트웨어(메뉴) > VMWare 이미지

답변1

Windows 명령과 대략적으로 동등한 것은 다음을 사용하는 것입니다.find주문하다:

find / -xdev >files_on_linux.txt

나는 이것이 당신이 하고 있는 일에 유용하다고 생각하지 않습니다. Linux(CentOS 및 Ubuntu)에서 프로그램은 패키지 형태로 제공됩니다. Ubuntu와 CentOS에서 동일한 프로그램을 사용하려면 CentOS 컴퓨터에서 패키지 목록을 가져와 Ubuntu Bag에 설치해야 합니다. CentOS에서는 다음 명령을 사용하여 설치된 패키지를 나열할 수 있습니다(이 sed단계에서는 관련 없는 버전 번호가 제거됩니다).

rpm -qa | sed 's/-[0-9]*//' | sort >centos_packages.txt

나쁜 소식은 CentOS와 Ubuntu가 서로 다른 패키지 이름을 사용하므로 이 목록을 사용하여 Ubuntu에 설치할 수 없다는 것입니다. lib라는 패키지를 무시하면 일부 작업을 저장할 수 있습니다.무엇, 이는 필요한 프로그램에 의해 자동으로 가져오기 때문입니다. 일부 패키지 이름은 다음과 같이 설치할 수 있습니다.

apt-get install $(grep -v '^lib' centos_packages.txt)

다음 명령을 사용하여 어떤 패키지가 설치되지 않았거나 다른 이름을 가지고 있는지 확인할 수 있습니다. Ubuntu에 설치된(또는 설치하도록 선택된) 패키지를 나열하는 centos_packages.txt출력에는 존재하지만 존재하지 않는 줄이 표시됩니다.dpkg --get-selections

dpkg --get-selections | sort | comm -31 - centos_packages.txt

또한 패키징 시스템 아래에 설치되거나 패키징 시스템에서 설치되지 않은 /usr/local프로그램 이 있을 수 있습니다 . /opt파일을 직접 복사할 수 있어야 합니다. 다음을 수행할 수 있습니다.

cd /
sudo tar cjf usr_local.tar.bz2 opt usr/local

파일을 usr_local.tgz새 Linux 시스템에 복사하고 추출합니다.

cd /
sudo tar xjf usr_local.tar.bz2

관련 정보