xargs 指定参数
find . -newermt '2019-09-20 18:57' -maxdepth 1|grep './'|xargs -I '{}' rm -rf {}
xargs
-n
, 每次执行命令时替换的最大参数个数, 如-n1
,Use at most MAX-ARGS
arguments per command line
使用-I
指定一个替换字符串, 示例如下:realpath ./sugar| xargs -t -I '{}' ln -s {} /root/sugar
-t
会显示 debug 信息. 当有一些不可见字符时, 使用 xargs 可能会失败, 这时就是使用-t
的好时机:
find . -name '*pdf'|xargs -d f -n1 -t -I {} mv "{}f" ~/iBooks/
// 输出: 因为包含了空格, 然后改了分隔符后就会出现问题, \n.
mv './Programming Rust.pdf' /Users/yutou/iBooks/
mv ''$'\n''./技术领导之路——全面解决问题的途径 - 文字版.pdf' /Users/yutou/iBooks/
mv:
./技术领导之路——全面解决问题的途径 - 文字版.pdf: No such file or directory
-d
定界符, 一般情况下使用空格作为定界符. 但是当文本中含有空格, 那么这个默认的定界符就会失效. 这时可以指定新的定界符
printf "abn"|xargs -d b
a n
实战
把当前文件(都是zip结尾的)全部解压
-A
是为了去掉目录.ls -A|xargs -n1 -I {} unzip {}