ITPub博客

首页 > 自动化运维 > 应用服务器 > [20220311]windwos下使用seq与xargs建立多个子目录问题.txt

[20220311]windwos下使用seq与xargs建立多个子目录问题.txt

原创 应用服务器 作者:lfree 时间:2022-03-14 08:48:10 0 删除 编辑

[20220311]windwos下使用seq与xargs建立多个子目录问题.txt

--//要建立202201,202202,...子目录在windows下报错如下。
\>seq 202201 1 202212 | xargs -iQ  mkdir Q
': Invalid argumentdirectory `202201
': Invalid argumentdirectory `202202
': Invalid argumentdirectory `202203
': Invalid argumentdirectory `202204
': Invalid argumentdirectory `202205
': Invalid argumentdirectory `202206
': Invalid argumentdirectory `202207
': Invalid argumentdirectory `202208
': Invalid argumentdirectory `202209
': Invalid argumentdirectory `202210
': Invalid argumentdirectory `202211
': Invalid argumentdirectory `202212

--//首先我无法理解,我安装unixutil包,mkdir.exe这个命令是存在的.
D:>dir /s/b c:\windows\system32\mkdir.exe
c:\windows\system32\mkdir.exe

D:\>which  mkdir.exe
C:\WINDOWS\system32\mkdir.exe

--//我知道windows的cmd的内部命令md,mkdir都是建立目录.当我使用xargs时,实际上调用的是外部命令mkdir.exe.

D:\tmp\xxx>seq 202201 1 202201 | xargs -iQ md Q
xargs: cannot fork

--//为什么上面的方式执行不成功呢,加入路径尝试如下:

D:\tmp\xxx>seq 202201 1 202201 | xargs -iQ c:\windows\system32\mkdir Q
': Invalid argument\mkdir: cannot make directory `202201
                   +++++++
D:\tmp\xxx>seq 202201 1 202201 | xargs -iQ c:\windows\system32\mkdir.exe Q
': Invalid argument\mkdir.exe: cannot make directory `202201
                   ++++++++++

D:\tmp\xxx>seq 202201 1 202201 | xargs -iQ mkdir Q
': Invalid argumentdirectory `202201

--//注意两者提示不同,前者解析不对.
--//后面的报错': Invalid argumentdirectory `202201
--//实际上
--//': Invalid argument
--//directory `202201

D:\tmp\xxx>seq 202201 1 202201 | xargs -iQ mkdir.exe Q
': Invalid argumentake directory `202201
~~~~~~~~~~~~~~~~~~~

--//ake 又是那里冒出来的,奇怪.windows缺乏必要的调试跟踪工具,或者我不了解,放弃探究.
--//实际上mkdir命令支持多个参数,无需使用xargs的-i参数.执行如下:

D:\tmp\xxx>seq 202201 1 202212  | xargs mkdir
D:\tmp\xxx>dir /s/b 2022*
D:\tmp\xxx\202201
D:\tmp\xxx\202202
D:\tmp\xxx\202203
D:\tmp\xxx\202204
D:\tmp\xxx\202205
D:\tmp\xxx\202206
D:\tmp\xxx\202207
D:\tmp\xxx\202208
D:\tmp\xxx\202209
D:\tmp\xxx\202210
D:\tmp\xxx\202211
D:\tmp\xxx\202212

--//如果使用内部命令解析,并且xargs -iQ 命令,改写如下ok。
seq 202201 1 202212 | xargs -iQ cmd /c mkdir Q

--//似乎xrags -i命令与mkdir的配合之间存在某种问题.以下执行都是ok的.
D:\tmp\xxx>which  echo.exe
C:\WINDOWS\system32\echo.exe

D:\tmp\xxx>seq 202201 1 202202  | xargs -iQ echo.exe Q
202201
202202

D:\tmp\xxx>seq 202201 1 202202  | xargs -iQ echo Q
202201
202202

D:\tmp\xxx>seq 202201 1 202202  | xargs -iQ cmd /c echo Q
202201
202202


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2870812/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7969412