在Linux中多個目錄下執行命令


介紹

作為Linux使用者,在多個目錄中執行相同的命令是很常見的。例如,您可能想要搜尋具有特定副檔名的所有檔案,或在多個目錄中執行shell指令碼。如果手動執行此任務,則會非常耗時,並且隨著目錄數量的增加,會變得更加繁瑣。幸運的是,Linux 提供了幾種方法可以有效地**跨多個目錄執行命令**。在本文中,我們將介紹其中一些方法,並向您展示如何在Linux中在多個目錄上執行命令。

使用find命令執行命令

**find**命令是Linux中最強大的命令之一。它允許您根據不同的條件(例如名稱、大小、日期等)搜尋檔案和目錄。您還可以對**find**命令找到的檔案和目錄執行命令。要在多個目錄中執行命令,您可以將find命令與**‘-exec’**選項一起使用。“-exec”選項允許您對搜尋命令找到的每個檔案或目錄執行命令。這是一個示例:

$ find /path/to/directories -type f -name "*.txt" -exec cat {} \;

上述命令將搜尋“/path/to/directories”中所有“.txt”檔案,並在每個檔案中執行**cat**命令。“{}”符號表示搜尋命令找到的檔案,而“;”符號表示要執行的命令的結束。

This is the contents of file1.txt
This is the contents of file2.txt
This is the contents of file3.txt
...

使用xargs命令

**xargs**命令是另一個用於跨多個目錄執行命令的有用工具。它允許您在標準輸入上執行命令,標準輸入可以由另一個命令生成。要在多個目錄中執行命令,您可以使用**ls**命令列出每個目錄中的檔案,然後將輸出傳遞到**xargs**命令。這是一個示例:

$ ls /path/to/directories | xargs cat

上述命令將列出位於** /path/to/directories**中的目錄的內容,**xargs**命令將捕獲列出的每個檔案。

This is the contents of file1.txt
This is the contents of file2.txt
This is the contents of file3.txt
...

使用shell指令碼

shell指令碼是用shell語言(如bash)編寫的程式。它允許您自動化任務並使用單個命令執行復雜的操作。要在多個目錄中執行命令,您可以編寫一個遍歷目錄並執行所需命令的shell指令碼。這是一個示例:

#!/bin/bash

for dir in /path/to/directories/*/; 
do
   cd "$dir"
   cat *
   cd -
done

上述指令碼將遍歷位於“/path/to/directories”中的所有目錄,並在每個目錄中的每個檔案中執行cat命令。**cd**命令將當前目錄更改為正在處理的目錄,而**“cd -”**命令在執行命令後將當前目錄更改回原始目錄。

This is the contents of file1.txt
This is the contents of file2.txt
This is the contents of file3.txt
...

如果手動在多個Linux目錄中執行命令,則可能需要很長時間。但是,有幾種有效的方法可以做到這一點,例如find命令、**xargs**命令和shell指令碼。在本文中,我們討論了每種方法,並向您展示瞭如何在Linux中在多個目錄上執行命令。無論您是初學者還是高階使用者,這些方法都將節省您的時間並使您的工作更容易。**find、xargs**和**shell**指令碼命令可以以多種方式使用,您可以根據自己的特定需求對其進行自定義。

結論

總之,當您知道正確的工具時,在Linux中多個目錄上執行命令是一項簡單的任務。使用find命令、xargs命令或shell指令碼,您可以節省時間並簡化您的工作。無論您是在搜尋檔案、執行shell指令碼還是執行其他任務,這些方法都將幫助您高效地實現目標。

更新於:2023年4月19日

779 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.