递归重命名文件linux,linux – 如何使用来自Bash的iconv递归重命名文件和文件夹

news/2024/7/5 19:25:17 标签: 递归重命名文件linux

我认为以下内容可以在一次通过中完成您想要的一切.

# Update: if this doesn't work, use read -d '' instead

find . -print0 | while IFS= read -d '$\000' f ;

do

orig_f="$f"

# Below is pure bash. You can replace with tr if you like

# f="$( echo $f | tr -d ,\' | tr "$'&'@- " "ya__" )"

f="${f// /_}" # Replace spaces with _

f="${f//\'}" # Remove single quote

f="${f//-/_}" # Replace - with _

f="${f//,}" # Remove commas

f="${f//&/y}" # Replace ampersand with y

f="${f//@/a}" # Replace at sign with a

f=$( iconv -f UTF8 -t ASCII//TRANSLIT <<< "$f" )

new_dir="$(dirname $f)"

new_f="$(basename $f)"

mkdir -p "$new_dir"

mv -i "$orig_f" "$new_dir/$new_f"

done

find命令(不需要实际选项,除了-print0来处理带空格的文件名)将向while循环发送空分隔文件名(毫无疑问,有人会在那里纠正我的错误).利用参数扩展的一长串分配删除/替换各种字符;我将使用tr作为注释的等效管道包含在内.然后我们通过iconv运行文件名来处理字符集问题.最后,我们将名称拆分为其路径和文件名组件,因为我们可能必须在执行mv之前创建一个新目录.


http://www.niftyadmin.cn/n/1593637.html

相关文章

JVM总体概述,java架构师必备技能

JVM字节码 JVM使用Java字节码的方式&#xff0c;作为Java 用户语言 和 机器语言 之间的中间语言。实现一个通用的、 机器无关 的执行平台。 JVM能干什么 基于安全方面考虑&#xff0c;JVM 要求在 class 文件中使用强制性的语法和约束&#xff0c;但任意一门语言都可以转换为被…

MySQL Replication常见错误整理

MySQL Replication常见错误整理 2013-11-06 12:17:39分类&#xff1a; Linux这篇文章旨在记录MySQL Replication的常见错误&#xff0c;包括自己工作中遇到的与网友在工作中遇到的&#xff0c;方面自己及别人以后进行查找。每个案例都是通过Last_IO_Errno/Last_IO_Error或者Las…

linux 性能测试iostat,linux 性能工具之iostat

报告中央处理器(CPU)统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的输入&#xff0f;输出统计信息。51Testing软件测试网%gkrc8qV"l1R3r语法51Testing软件测试网y8N mn:m(Gf2}ziostat[-s] [-a] [-d|-t] [-T][-m][PhysicalVolume... ] [Interval[Count] ]51Testi…

Kafka发送原理剖析其他生产者参数,2021年字节跳动、阿里等大厂最全Java面试题

这个参数用来指定分区中必须有多少个副本收到这条消息&#xff0c;之后生产者才会认为这条消息时写入成功的。acks是生产者客户端中非常重要的一个参数&#xff0c;它涉及到消息的可靠性和吞吐量之间的权衡。 ack0&#xff0c; 生产者在成功写入消息之前不会等待任何来自服务器…

2.7-mysql主从配置-1

MySQL 主从原理非常简单&#xff0c;总结一下&#xff1a;每个从仅可以设置一个主。主在执行 sql 之后&#xff0c;记录二进制 log 文件&#xff08;bin-log&#xff09;。从连接主&#xff0c;并从主获取 binlog&#xff0c;存于本地 relay-log&#xff0c;并从上次记住的位置…

mysql5,java中级工程师面试

下载下来的文件名是 mysql-installer-community-5.7.24.0.msi 双击文件名称进行安装 如果提示如下错误 说明.NET4.5.2未安装 需要安装此插件 报错窗口有网址 直接安装即可 ![](https://img-blog.csdnimg.cn/20210427122332443.png?x-oss-processimage/watermark,type_ZmFu 《…

linux 未声明的变量,linux – Makefile变量替换显然没有完成,即使:=在声明中使用...

我有一个主内核模块,其他内核模块与之通信.我已经构建了这样的模块(概念上)&#xff1a;main module/|\drivers/||\driver1|\driver2\driver3由于这些是内核模块,我需要像这样编译它们&#xff1a;make -C /lib/modules/$(shell uname -r)/build M$(shell pwd) modules但是,由于…

Netty编解码开发+多协议开发和应用+源码,基础和进阶的区别

第3章Netty入门应用 Netty开发环境的搭建 服务端程序TimeServer开发 客户端程序TimeClient开发 时间服务器的运行和调试 第4章TCP粘包/拆包问题的解决之道 TCP粘包/拆包的基础知识 没考虑TCP粘包/拆包的问题案例 使用Netty解决读半包问题 第5章分隔符和定长解码器的应用…