遞歸獲取Linux文件列表並直接輸出到文件
我正在 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