linux - 将一个文件夹拆分为多个文件夹而不在终端/ bash中创建子文件夹
问题描述
如何在不创建子文件夹的情况下将父文件夹拆分为 2 个或更多。
就像文件夹 A 进入文件夹 A1,FolderA2 但都在同一个目录中,而不是文件夹 A 中的子文件夹。
实际上这是我使用的脚本,但它最终只会创建子文件夹
let fileCount=3000
let dirNum=1
for f in *
do
[ -d $f ] && continue
[ $fileCount -eq 3000 ] && {
dir=$(printf "%03d" $dirNum)
mkdir $dir
let dirNum=$dirNum+1
let fileCount=0
}
mv $f $dir
let fileCount=$fileCount+1
done
解决方案
在 的父目录中folderA
,运行以下脚本:
#!/bin/bash
i=0 # counter for current file
j=0 # counter for current directory
batchsize=1000 # size of each batch
find folderA -type f -print0 | while read -r -d $'\0' file
do
if (( i % batchsize == 0 ))
then
(( j++ ))
mkdir "dir_$j"
fi
mv -- "$file" "dir_$j"
(( i++ ))
done
如果其中的所有文件folderA
都具有“正常”名称,即没有空格、没有 glob 字符等,则脚本可以写为
#!/bin/bash
find folderA -maxdepth 2 -type f | xargs -n 1000 | while read files
do
mkdir dir_$((++i))
mv $files dir_$i/
done
哪个更简洁,也更高效。
推荐阅读
- c - 带有 C_lang linting 的 VS Code 中的“声明不兼容”错误是什么意思?
- tensorflow - 转换 Pytorch -> Onnx -> Tensorflow 的张量格式问题
- python - 按id分组并获取所有行对应于列中的最小值
- python - 只需使用 cmd 从 AWS WAF IP-set 中删除 IP 地址
- ubuntu - grep 和 awk 仅复制插入语句
- model - 在 Anylogic 中运行模型的窗口不显示任何内容
- java - 如何从java中的pcap文件中提取协议字段
- python - 我找不到为什么结果中有减号
- .htaccess - 共享主机上的 html 站点出现 500 错误,我的 .htaccess 语法是否错误?
- php - Xdebug 3 更新 - cookie 'XDEBUG_SESSION=PHPSTORM' 不再通过 php 7.3 cli 工作