xargs

위키百科, 우리 모두의 百科事典.

xargs
運營 體制 유닉스 , 유닉스 系列
種類 命令語

xargs 유닉스 유닉스 系列 運營 體制 의 命令語로 標準 入力 을 통해 命令 줄을 만들고 實行하는 데 使用한다. 버전 2.6.23 以前의 리눅스 커널 에서는 긴 目錄의 媒介變數가 命令語를 통해 利用하지 못하는 境遇도 間或 있으므로 [1] xargs는 變數 目錄을 여러 下部 目錄으로 잘게 나누어서 받아들일 수 있게 한다.

例를 들면, 다음 命令語들은 /path 아래에 파일들이 너무 많이 있을 境遇 "Argument list too long"이란 메시지를 내며 實行되지 않는다.

 rm
 /path/*

또는

 rm
 `
find
 /path
 -type
 f
`

그러나, (같은 役割을 하는) 다음 命令語는 파일 個數와 相關없이 實行된다.

 find
 /path
 -type
 f
 -print0
 |
 xargs
 -0
 rm

이 예제에서, find 는 파일이름의 리스트를 갖는 xargs 를 入力으로 받는다. xargs 는 이 리스트를 細部리스트로 나누면서 各各의 리스트에 對해서 rm 을 呼出한다. 이 方法은 같은 役割을 하는 다음의 命令語 보다 더 效率的이다.

 find
 /path
 -type
 f
 -exec
 rm
 '{}'
 \;

위 命令語에서는 各各의 파일에 對해 rm 이 呼出된다. [2]

같이 보기 [ 編輯 ]

各州 [ 編輯 ]

  1. http://www.gnu.org/software/coreutils/faq/coreutils-faq.html#Argument-list-too-long
  2. 參考로, 近來의 find 命令語에서는, xargs 의 機能을 다음과 같이 代替시킬 수 있다.
     find
     /path
     -type
     f
     -exec
     rm
     '{}'
     +
    

外部 링크 [ 編輯 ]