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/{}
相關網頁
- Xargs by example - xargs 很多操作方式範例