Linux shell 使用 xargs 解開 目錄內的 *.rar

Linux 的 shell 要解開目錄內的 *.rar, 或者要依序對目錄內的檔案做某個操作, 可以使用 xargs 達成.

Linux shell 使用 xargs 解開 目錄內的 *.rar

由此篇文章 "unrar All Files in Directory" 有講, 可以用下述解法達成:

  • find . -iname "*.rar" | xargs -i unrar x {} /home/user/directory/

可以縮短到使用下述方式:

  • ls | xargs -i unrar x {}

但是 man xargs 發現 -i 的參數, 似乎不建議使用(詳見下述說明), 建議使用 -I.

-I replace-str
Replace  occurrences  of  replace-str in the initial-arguments with names read from standard input.  Also, unquoted blanks do not terminate input items; instead the separator is the newline character.  Implies -x and -L 1.

--replace[=replace-str]
-i[replace-str]
This option is a synonym for -Ireplace-str if replace-str is specified, and for -I{} otherwise.  This option  is deprecated; use -I instead.

於是 xargs -I 的使用方式如下述:

  • ls /tmp/directory | xargs -I {} ls /tmp/directory/{}

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料