Files

遞歸獲取Linux文件列表並直接輸出到文件

  • May 12, 2012

我正在 Ubuntu 上為 i2b2 配置軟體,並嘗試在我下載的 CentOS 映像上找到所有相關文件(路徑如下),現在正在 Windows VMWare Player 上執行(免費下載)。我想為 CentOS 和 Ubuntu 遞歸地創建一個 Linux 文件層次結構的文件,這樣我就可以找到每個程序的相關文件(即:JBoss、Java、Apache、Axis、Spring Web Framework、Oracle 等)。 .) 並比較配置。我知道如何通過獲取所有文件的輸出在 Windows 中做類似的事情。

長話短說,我只想從根文件夾開始轉儲 Linux 文件系統中的所有文件,並將其保存到一個文件中。

這是 Windows 中執行此操作的命令:

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

參考:

http://www.i2b2.org > 軟體(菜單)> VMWare Image

大致相當於您的 Windows 命令將使用以下find命令:

find / -xdev >files_on_linux.txt

我不認為這對你正在做的事情很有用。在 Linux(CentOS 和 Ubuntu)上,程序以包的形式出現;如果您想在 Ubuntu 和 CentOS 上擁有相同的程序,那麼您應該在 CentOS 機器上獲取軟體包列表,並在 Ubuntu 上安裝相同的軟體包。在 CentOS 上,您可以使用以下命令列出已安裝的軟體包(該sed步驟會去除版本號,此處無關緊要):

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

壞消息是 CentOS 和 Ubuntu 使用不同的包名,所以你不能拿這個列表在 Ubuntu 上進行安裝。您可以通過忽略任何名為 lib something的包來減少一些工作,因為需要它們的程序會自動提取這些包。一些包名稱將一對一匹配;您可以按如下方式安裝它們:

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

您可以使用以下命令查看哪些軟體包未安裝或具有不同的名稱 - 它顯示存在centos_packages.txt但不在輸出中的行dpkg --get-selections,其中列出了 Ubuntu 上已安裝(或選擇安裝)的軟體包:

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

引用自:https://unix.stackexchange.com/questions/38516