[转帖]linux将大目录等分切割成多个小目录

linux,目录,分切,割成,多个 · 浏览次数 : 0

小编点评

```shell #!/bin/bash # 获取目录路径 dir_path="$1" # 获取每 100 个文件所在的子目录名称 step=100 # 创建子目录名称 for i in $(seq 0 $step -1); do d="dir_$(printf %03d $i)"; mkdir -p "$d"; done # 遍历目录,将每 n 个文件一起存放到新的子目录 for file in "$dir_path"/*; do d=$(printf %03d $((i/100+1))"); mkdir -p "$d"; mv "$file" "$d"; let i++ done # 将该 shell 移除 rm -f ./*/split.sh ```

正文

https://www.jianshu.com/p/6f9e6743a1dc

 

需求:有一个目录存放了数十万个文件,现在需要将这个目录上传,如果整个目录上传,中间因为某些故障断开连接了,可能又要从头开始

这时就需要将目录切割成多个小目录,分批次上传,一个简单的 shell 脚本即可实现

思路很简单:遍历目录,将每 n 个文件一起存放到新的子目录,子目录名称以 dir_001 这种格式排列

代码实现:假定我们以 100 个文件为一个子目录

新建 split.sh 放在目录下

i=0;
for f in *;
do
    d=dir_$(printf %03d $((i/100+1)));
    mkdir -p $d;
    mv "$f" $d;
    let i++;
done

执行完成后要将该 shell 移除

rm -f ./*/split.sh
 
题图

与[转帖]linux将大目录等分切割成多个小目录相似的内容:

[转帖]linux将大目录等分切割成多个小目录

https://www.jianshu.com/p/6f9e6743a1dc 需求:有一个目录存放了数十万个文件,现在需要将这个目录上传,如果整个目录上传,中间因为某些故障断开连接了,可能又要从头开始 这时就需要将目录切割成多个小目录,分批次上传,一个简单的 shell 脚本即可实现 思路很简单:遍

[转帖]linux将大目录等分切割成多个小目录

https://www.jianshu.com/p/6f9e6743a1dc 需求:有一个目录存放了数十万个文件,现在需要将这个目录上传,如果整个目录上传,中间因为某些故障断开连接了,可能又要从头开始 这时就需要将目录切割成多个小目录,分批次上传,一个简单的 shell 脚本即可实现 思路很简单:遍

[转帖]Linux中的目录结构是什么样的?有人说像“树”,你觉得呢

https://bbs.huaweicloud.com/blogs/380543 【摘要】 在 Linux/Unix 操作系统中,一切都是文件,即使目录是文件,普通文件也是文件,鼠标、键盘、打印机等设备也是文件,本文笔者将带大家了解一下Linux中的文件目录结构。 文件类型Linux 中有三大类文件

[转帖]Linux中split大文件分割和cat合并文件详解

https://www.yingsoo.com/news/servers/70195.html 当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而不得不重新传输。这种情况下,可以先将大文件分割成小文件后分批传输,传完后再合并文件。 1. 分割文件

[转帖]如何为多个字符串和模式使用Grep

[日期:2020-05-14] 来源:Linux公社 作者:醉落红尘 [字体:大 中 小] grep是一个功能强大的命令行工具,可让您在一个或多个输入文件中搜索与正则表达式匹配的行,并将每个匹配的行写入标准输出。 在本文中,我们将向您展示如何使用GNU grep搜索多个字符串或模式。 Grep多种模

[转帖]Unix 已落幕,Unix 仍长存

https://linux.cn/article-15457-1.html 不要指望再看到任何更多的 AIX 大新闻了。这意味着最后剩下的 Unix 是 …… Linux。 这是一个时代的结束。正如上周报道的那样,IBM 已经将 AIX 的开发转移到印度。在它支付了 340 亿美金买下了红帽,有了自

[转帖]Linux磁盘I/O(二):使用vm.dirty_ratio和vm.dirty_background_ratio优化磁盘性能

文件缓存是一项重要的性能改进,在大多数情况下,读缓存在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据)。写缓存比较复杂,Linux内核将磁盘写入缓存,过段时间再异步将它们刷新到磁盘。这对加速磁盘I/O有很好的效果,但是当数据未写入磁盘时,丢失数据的可能性会增加。 当然,也存在缓存被写爆的

[转帖]Linux系统下cpio命令详解

简介 cpio主要是解压或者将文件压缩到指定文件中即copy-in和copy-out模式。 参数说明 参数参数说明-icopy-in模式,解压文件-ocopy-out模式,即压缩文件-d自动生成目录-v打印处理的文件-m保留文件修改的时间 具体操作 [root@localhost casper]#

[转帖]linux 批量修改文件格式

将Windows上的shell脚本拷贝到Linux时,脚本的编码格式还是docs,需要改成unix才可执行,在文件不多的情况下可以直接手动更改,但是在脚本文件比较多的时候,手动改起来就太麻烦了,此时就可以使用shell命令批量来进行更改。 批量更改脚本如下: for i in `find . -ty

[转帖]Linux文件分发脚本,只需一条命令将你的文件分发到各个服务器上

https://zhuanlan.zhihu.com/p/438457921 背景 在运维或在日常工作生活中,我们经常会把一个文件拷贝到其它服务器上,或同时分发到多个服务器上,甚至要求目标机将文件放在相同的路径下,方便程序进一步调用。 遇到这种问题,我们通常的做法是使用scp或rsync命令把文件拷