如何将文件移到文件夹中并将其从文件夹中取出

时间:2018-09-20 21:05:19

标签: bash

我有1000个.txt格式的文件。 我正在尝试生成1000个文件夹,并将每个文件夹放入文件夹

我可以执行以下操作

for i in $(seq 0 1000); do 
    mkdir -p "$i" && 
    mv *"$i".txt "$i"
done

但是,它将其中包含0的任何内容放入folder。例如 文件名是

TR0.txt
TR1.txt
TR2.txt
.
.
TR1000.txt

上面的代码将创建1000个文件夹,然后将文件TR0.txt,TR10.txt ....放入文件夹0等中 我想将每个文件放在编号为

的文件夹中

然后我想将它们全部从每个文件夹中取出,然后放入另一个文件夹中。

我做了以下都不起作用的事情

mkdir myfolder
 for dir in $(seq 0 1000); do
   mv -vi $i/* $myfolder
done

1 个答案:

答案 0 :(得分:0)

如评论中所述,请勿使用通配符。而是重新创建文件名:

for i in $(seq 0 1000); do 
    mkdir -p "$i" && 
    mv "TR${i}.txt" "$i"
done

另一方面,要收集这些文件夹中的所有文件并将它们放入另一个文件夹,mv命令的目标位置必须是一个文件夹,而不是一个不包含任何内容的变量(或不包含任何内容的变量)文件夹名称):

mkdir myfolder
for dir in $(seq 0 1000); do
   mv -vi $i/* myfolder
done