N天學習乙個linux命令之xargs

2022-02-26 12:05:54 字數 1517 閱讀 7401

用途

標準輸入流讀取引數(空格或者換行符分隔),傳遞給需要執行的命令

用法

xargs [options] [command [initial-arguments]]

常用選項

--arg-file=file

-a file

從檔案中讀取引數

--null

-0空字元作為分隔符,當引數中包含空格或者換行符時使用

--delimiter=delim

-d delim

指定引數分隔符

--max-args=max-args

-n max-args

設定傳遞的引數個數

--interactive

-p 顯示互動提示

--no-run-if-empty

-r 引數為空時不執行

--verbose

-t列印執行的命令資訊

--version

顯示命令版本資訊

--max-procs=max-procs

-p max-procs

設定可執行的最大程序,預設是1,0表示不限制

-i replace-str

用引數替換命令初始引數佔位符

實踐

1.檔案中讀取引數

[root@vm ~]# xargs -a t.log echo

a b2.引數空字元分隔

[root@vm ~]# xargs -0 -a t.log echoab

3.指定引數分隔符

[root@vm ~]# echo 'b##cc' >> t.log

[root@vm ~]# xargs -a t.log -d '#' echoab

b cc

4.設定每次傳遞乙個引數且執行命令前提示

[root@vm ~]# xargs -a t.log -n 1 -p echo

echo a ?...y

echo b ?...a

yecho b##cc ?...b

yb##cc

5.刪除/tmp目錄下檔名為core的檔案

a.檔名沒有包含特殊字元(空格,換行符)

[root@vm ~]# find /tmp -name core -type f -print | xargs /bin/rm -f

[root@vm ~]#

b.檔名包含特殊字元(空格,換行符)

[root@vm ~]# find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f

[root@vm ~]#

6.替換命令初始引數佔位符

[root@vm ~]# xargs -a t.log -n 1 -i '{}' echo '{}'ab

b##cc

參考資料

man xargs

N天學習乙個linux命令之umask

前言 umask不是linux命令,而是shell內建的指令,俗稱使用者許可權掩碼,用於對使用者建立的檔案和目錄設定預設許可權。預設的許可權掩碼是0022,也就是說新建立的檔案許可權是0644,新建立的目錄許可權是0755。設定的值是需要去掉的許可權。許可權掩碼一般使用八進位制表示。用途 新建的檔案...

Linux每天學習乙個命令之type命令

今天看到了type命令覺得和which命令很像,所以想著學習記錄一下。回想起之前使用which命令的時候,當檢視cd命令,history命令的時候,會出現這句話 root localhost which history usr bin which no history in usr local sb...

Linux每天學習乙個命令之cp命令

最近學習linux中的複製檔案命令cp,把學習記錄如下 cp 選項 source 檔案 destination 目的檔案 cp 選項 source1 source2 source3 source4 source5 directory cp命令可以複製檔案或資料夾,後面可以接多個原始檔 當有多個原始檔...