用linux shell 并发压缩多层目录下的图片的脚本,压缩图片保存到另一目录中,

时间: 2023-12-06 22:44:57 浏览: 31
可以使用 `find` 命令找到多层目录下的所有图片,然后使用 `xargs` 命令调用 `gzip` 进行压缩。可以通过 `nohup` 命令将该命令放入后台执行,并将输出重定向到一个日志文件中。 以下是一个示例脚本: ```bash #!/bin/bash # 设置要压缩的文件类型 filetype="*.jpg *.jpeg *.png" # 设置要搜索的起始目录和压缩后保存的目录 search_dir="/path/to/search" compress_dir="/path/to/compress" # 找到所有要压缩的文件并压缩 find "$search_dir" -type f -name "$filetype" -print0 | xargs -0 -P 4 -I {} sh -c 'gzip -c {} > "$compress_dir/$(basename {}).gz"' # 将输出重定向到日志文件中 nohup ./compress.sh > compress.log & ``` 在上面的脚本中,`-P` 参数指定了要启动的并发进程数,这里设置为 4。通过 `basename` 命令获取文件名,然后将压缩后的文件保存到指定目录中,并以 `.gz` 扩展名结尾。 你可以根据需要修改 `filetype`、`search_dir` 和 `compress_dir` 变量来适应你的需求。
相关问题

用linux shell 并发压缩多级目录下的图片的脚本,压缩图片保存到另一目录中,并保持目录结构

可以使用 `find` 命令来遍历多级目录下的图片文件,然后使用 `tar` 命令进行压缩,最后将压缩文件保存到另一目录中并保持目录结构。 以下是一个示例脚本: ```bash #!/bin/bash # 原始图片目录 src_dir="/path/to/src_dir" # 压缩后的图片保存目录 dst_dir="/path/to/dst_dir" # 并发压缩的进程数 num_procs=4 # 查找原始图片目录下的所有图片文件,并将文件名保存到数组中 files=($(find "$src_dir" -type f \( -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" \))) # 创建保存压缩文件的目录结构 mkdir -p "$dst_dir" # 并发压缩图片 for (( i=0; i<${#files[@]}; i+=num_procs )); do # 获取要压缩的文件列表 file_list="${files[@]:i:num_procs}" # 使用 xargs 将文件列表作为参数传递给 tar 命令,并在后台运行 echo "${file_list[@]}" | xargs -P "$num_procs" -I % bash -c 'tar -czf "$dst_dir/${%/##*/}.tar.gz" "$@"' _ % done ``` 说明: - `find "$src_dir" -type f \( -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" \)` 查找 `$src_dir` 目录下所有类型为 PNG、JPG 和 JPEG 的图片文件,并将文件名保存到数组 `files` 中。 - `mkdir -p "$dst_dir"` 创建保存压缩文件的目录结构,如果目录已经存在则不会报错。 - `for (( i=0; i<${#files[@]}; i+=num_procs ))` 循环遍历 `files` 数组,每次取出 `num_procs` 个文件进行压缩。 - `echo "${file_list[@]}" | xargs -P "$num_procs" -I % bash -c 'tar -czf "$dst_dir/${%/##*/}.tar.gz" "$@"' _ %` 使用 `xargs` 命令将 `file_list` 数组中的文件名作为参数传递给 `tar` 命令,并在后台执行。其中 `${%/##*/}` 表示从文件路径中获取文件名,`-P "$num_procs"` 表示并发执行的进程数,`-I %` 表示将参数替换为 `%`,`_ %` 表示将 `_` 作为命令的 `$0` 参数,`"$@"` 表示将所有参数传递给 `tar` 命令。

写一个Linux shell脚本,查看目录下所有子目录占用空间

可以使用 `du` 命令来查看目录的大小,加上 `-h` 参数可以以易读的方式显示目录大小,加上 `-d` 参数可以指定查看的目录深度。结合 `find` 命令可以查找指定目录下的所有子目录。 下面是一个查看指定目录下所有子目录占用空间的 shell 脚本示例: ```bash #!/bin/bash # 指定要查看的目录 dir="/path/to/directory" # 查找指定目录下的所有子目录,并遍历输出它们的空间占用情况 find "$dir" -type d -print0 | while read -d $'\0' path; do # 使用 du 命令计算目录大小,并以易读的方式显示 size=$(du -sh "$path" | cut -f1) echo "$size $path" done ``` 在上面的脚本中,`find` 命令会查找指定目录下的所有子目录,并将它们的路径以 null 字符 (`\0`) 分隔输出。接着使用 `while` 循环读取每个子目录的路径,并使用 `du` 命令计算它们的大小。最后将目录大小和路径输出。

相关推荐

最新推荐

recommend-type

一个监控LINUX目录和文件变化的Shell脚本分享

主要介绍了一个监控LINUX目录和文件变化的Shell脚本分享,对服务器经常被挂马的朋友时分有用,需要的朋友可以参考下
recommend-type

在linux shell脚本中root切换到普通用户执行脚本或命令的方法

今天小编就为大家分享一篇在linux shell脚本中root切换到普通用户执行脚本或命令的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

Shell脚本实现上传zip压缩文件到FTP服务器

主要介绍了Shell脚本实现上传zip压缩文件到FTP服务器,本文直接给出实现代码,需要的朋友可以参考下
recommend-type

Java调用linux shell脚本的方法

主要介绍了Java调用linux shell脚本的方法,需要的朋友可以参考下
recommend-type

shell脚本递归遍历目录及子目录的例子分享

主要介绍了shell脚本递归遍历目录及子目录的例子,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

可见光定位LED及其供电硬件具体型号,广角镜头和探测器,实验设计具体流程步骤,

1. 可见光定位LED型号:一般可使用5mm或3mm的普通白色LED,也可以选择专门用于定位的LED,例如OSRAM公司的SFH 4715AS或Vishay公司的VLMU3500-385-120。 2. 供电硬件型号:可以使用常见的直流电源供电,也可以选择专门的LED驱动器,例如Meanwell公司的ELG-75-C或ELG-150-C系列。 3. 广角镜头和探测器型号:一般可采用广角透镜和CMOS摄像头或光电二极管探测器,例如Omron公司的B5W-LA或Murata公司的IRS-B210ST01。 4. 实验设计流程步骤: 1)确定实验目的和研究对象,例如车辆或机器人的定位和导航。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。