将数字输入mkdir

问题描述 投票:1回答:1

我正在尝试为目录中的每个文件创建一个目录。到目前为止,我有:

ls *output | sort -V | wc -l | xargs -I[] mkdir Cele_{1..[]}

但这导致只有一个名为Cele_ {1..1000}的目录,而不是1000个目录。

我很困惑因为输入mkdir Cele_ {1..1000}会创建1000个目录,而不是一个名为Cele_ {1..1000}的目录。

我在这里错过了什么?

bash pipe mkdir
1个回答
2
投票

需要评估xargs的最后一个命令

 x=$(ls * | sort -V | wc -l  | xargs  -I[] echo Cele_{1..[]})
 eval mkdir $x

更多错误的方法(一个班轮)

shopt -s nullglob;fl=(*); eval mkdir Cele_{1..${#fl[@]}}; shopt -u nullglob;

有多条线

shopt -s nullglob
fl=(*)
eval mkdir Cele_{1..${#fl[@]}}
shopt -u nullglob
© www.soinside.com 2019 - 2024. All rights reserved.