一个大文件夹里面包含5000个小文件,我想把它分成50/1的一个的文件夹

有什么工具调整吗?手动剪切复制太慢了... 有什么工具调整吗?手动剪切复制太慢了 展开
 我来答
hixtao
2013-11-15 · TA获得超过1099个赞
知道小有建树答主
回答量:468
采纳率:85%
帮助的人:328万
展开全部
你用什么操作系统?

等到花儿都谢了,你还没告诉我,那我就给出我在linux下常用的bash脚本吧。
这个脚本可以设置分组文件夹的后缀名,默认是_F,形成的文件夹名是
两位数字加上后缀名。你可以自己修改。
01_F
02_F
03_F
04_F……

用井号#开头的行,表示注释,不会执行。

#!/bin/bash
SAVEIFS=$IFS
IFS=$(echo -en "\n\b") #For Loop File Names With Spaces
#文件分组判断目录吗?
#会

DELIM="'"
N=2

aa=00 #"第一个文件名将设置为:aa+1"
n=-1 #计数器

echo "tell me where the folder is"
#fd="/home/lotus/下载/ch_03/"
read fd
fd=`echo "$fd" | cut -d "$DELIM" -f $N`
echo
echo $fd
echo

echo "tell me how many files the folder can contain?"
read num #每个目录要包含的文件夹书目

cd "$fd"

contents=`ls -1|sort -n`

for LINE in $contents
do
echo "$LINE"
if [ -d "$LINE" ] #只分组目录。 如果要分组文件,修改-d为-f
# if [ -f "$LINE" ] #只分组目录。 如果要分组文件,修改-d为-f
then
echo "folder: ""$LINE"
n=`expr $n + 1`
modi=`expr $n % $num`
echo "processed folders: "`expr $n + 1`
if [ "$modi" -eq 0 ]
then
aa=`expr $aa + 1`
directory1="00""$aa""_F" #设置目录名
mkdir $directory1
directory="$directory1""/"
fi
mv -n "$LINE" "$directory"
fi

done
IFS=$SAVEIFS

echo "folders grouping finished!"
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式