Linux xargs 命令的實用示例


您是否正在尋找簡化 Linux 工作流程的不同方法,並希望自動化您的任務?Linux xargs 命令可能正是您所不知道的。在本文中,我們將瞭解一些使用 xargs 在其他命令生成的專案列表上執行命令的實用示例。

作為定期使用 Linux 的使用者,我們發現 xargs 命令是我們工作流程中寶貴的工具。它幫助我們輕鬆地對大量檔案或資料執行復雜任務。當處理長長的專案或資料列表時,xargs 命令特別有用,因為它簡化了單獨對每個專案執行命令的過程。

使用 xargs,我們可以執行諸如複製、刪除、壓縮、重新命名和計數大量檔案或資料等命令。在以下文章中,我們將介紹一些使用 xargs 的實用示例。到本文結束時,您將對如何使用 xargs 有很好的理解,並能夠將您的 Linux 技能提升到一個新的水平。

因此,如果您已準備好提升您的 Linux 進步速度,讓我們深入瞭解 Linux xargs 命令的實用示例。

1. 將檔案列表複製到新目錄

假設您在一個目錄中有一系列檔案需要複製到一個新目錄,可以使用 xargs 命令與 cp 命令來快速輕鬆地完成此任務。這種方法允許您立即對所有檔案執行復制操作,而不是逐個手動複製每個檔案。

以下是如何將檔案複製到新目錄的示例:

ls *.txt | xargs -I '{}' cp '{}' /path/to/new_directory/

該命令將生成類似於以下內容的輸出:

file1.txt
file2.txt

要將當前目錄中的所有“.txt”檔案複製到新目錄,我們首先使用“ls”命令列出所有“.txt”檔案。生成的輸出傳遞給 xargs 命令。透過使用 -I 選項,我們可以用實際檔名替換佔位符“{}”。然後,使用“cp”命令將每個檔案複製到新目錄。總而言之,此命令利用了 xargs 將一個命令的輸出作為另一個命令的輸入的能力,從而可以輕鬆地一次性將多個檔案複製到新位置。

2. 刪除具有特定副檔名的所有檔案

要刪除目錄中具有特定副檔名的所有檔案,可以使用 xargs 命令與 rm 命令。

以下是如何刪除具有特定副檔名的檔案的示例:

ls *.log | xargs rm

輸出將類似於以下內容:

file1.log
file2.log
File3.log

假設您想刪除當前目錄中所有副檔名為“.log”的檔案。您可以使用上述命令來執行此操作。此命令首先列出當前目錄中所有副檔名為“.log”的檔案,然後使用 xargs 命令將每個檔名傳遞給“rm”命令。“rm”命令逐個刪除這些檔案,使您的目錄更整潔、更有條理。

3. 壓縮目錄中的所有檔案

要壓縮目錄中的所有檔案,可以使用 xargs 命令與 tar 命令。

以下是如何壓縮目錄中所有檔案的示例:

ls | xargs tar -czvf archive.tar.gz

終端輸出將類似於以下內容:

user@ubuntu:~/directory$ ls | xargs tar -czvf archive.tar.gz
file1.txt
file2.txt
file3.txt
file4.txt
file5.txt
archive.tar.gz
user@ubuntu:~/directory$

此命令基本上獲取當前目錄中存在的所有檔案並將其傳送到 xargs 命令。然後,xargs 將每個檔名傳遞給 tar 命令,該命令將所有檔案壓縮到一個 tar 檔案中。換句話說,此命令用於建立當前目錄中所有檔案的存檔。

4. 將多個檔案轉換為大寫

如果要將目錄中的多個檔案轉換為大寫,可以使用 xargs 命令與 mv 命令。

以下是如何將多個檔案轉換為大寫的示例:

ls | xargs -I '{}' sh -c 'mv "{}" $(echo "{}" | tr "[:lower:]" "[:upper:]")'

終端輸出將類似於以下內容:

file1.txt
file2.txt
file3.txt
mv file1.txt FILE1.TXT
mv file2.txt FILE2.TXT
mv file3.txt FILE3.TXT

以下命令檢視當前目錄中的所有檔案並將列表傳送到 xargs 命令。-I 選項允許我們使用實際檔名而不是佔位符“{}”。然後,該命令使用 sh 命令執行一個 shell 命令,該命令將檔名轉換為大寫並重命名檔案。

5. 統計多個檔案中的行數

如果要統計目錄中多個檔案中的行數,可以使用 xargs 命令與 wc 命令。

以下是統計多個檔案中的行數的示例:

ls | xargs wc -l

輸出將如下所示:

12 file1.txt
24 file2.txt
6 file3.txt

命令“ls | xargs wc -l”將顯示當前目錄中每個檔案中的行數。這是透過使用'ls'命令列出當前目錄中的所有檔案,然後將輸出傳遞給'xargs'來完成的。'xargs'命令然後獲取每個檔名並將其傳遞給'wc'命令,'wc'命令計算每個檔案中的行數。

6. 生成系統中所有 Linux 使用者帳戶的列表

如果您想要與 Linux 系統關聯的所有使用者帳戶的列表,則可以參考以下命令。

cut -d: -f1 < /etc/passwd | sort | xargs
  • cut -d: -f1 < /etc/passwd  這將從 /etc/passwd 檔案中提取第一個欄位,該檔案包含系統上使用者列表,並以冒號 (:) 分隔符分隔。-d 選項指定要使用的分隔符,-f 選項指定要提取的欄位。在本例中,我們提取第一個欄位(即使用者名稱)。

  • sort  這會按字母順序對使用者名稱列表進行排序。

  • xargs  這將獲取排序後的使用者名稱列表,並將它們作為引數傳遞給下一個命令。

執行此命令時,您將獲得此類預期輸出:

$ cut -d: -f1 < /etc/passwd | sort | xargs echo
bin daemon ftp games gnats irc list lp mail man messagebus news nobody proxy root systemd-network sync sys syslog systemd-bus-proxy systemd-journal-gateway systemd-journal-remote systemd-timesync uucp www-data

結論

總之,xargs 命令是一個用途廣泛且有用的工具,可用於自動化對大型資料集或檔案執行的複雜任務。在本文中,我們提供了一些使用 xargs 命令執行各種操作的實用示例,例如重新命名、壓縮以及統計目錄中多個檔案中的行數。xargs 命令透過簡化在多個檔案上執行命令的過程,從而節省時間並簡化重複性任務。作為 Linux 使用者,掌握 xargs 命令是一項必不可少的技能,可以顯著提高生產力和工作流程效率。

更新於:2023年7月28日

528 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告