问题描述

前面《Jenkins系列之-—07 实现SQL脚本批量执行》在实际运行过程中碰到如下问题

某次一模块SQL脚本执行完成后,再次执行还会运行,即备份执行完成的脚本这个功能没起作用,初步断定是脚本名中有某种特殊符号导致的

分析:

linux中碰到文件名中有空格的处理方法

① 使用引号将文件名括起来: touch "Me like yuh.mp3"

② 空格前使用连接符号""转义: touch Me\ like\ yuh.mp3 “\”

③ 下面脚本可将文件名中间的空格用下划线_替换(注意:并不能替换文件名后面的空格)如下所示

find . -type f -name "* *" -print |

while read name; do

na=$(echo $name | tr ' ' '_')

if [[ $name != $na ]]; then

mv "$name" "$na"

fi

done

文件名后面的空格

for file in *; do mv "$file" echo "$file" | tr ' ' '\n' ; done

for file in ' '; do mv "$file" echo "$file" | sed -e 's/ /n/g'; done

解决办法

sql文件执行完成在备份时,如果文件名中间有空格,将中间空格替换为_

在比较文件名是否一致时,兼容有空格的文件名

扩展--碰到文件名中有其他特殊字符如何处理

1. 最直接的办法,使用时候用绝对路径,如:touch ./tmp/Me like yuh.mp3

2. 不同类型特殊符号处理:

2.1 不需要处理的

具有加号(+),

有百分比(%)

有^

有大括号{}

有方括号[]

有得分(_)下

有等于(=)

有问号(?)

有逗号(,)

有冒号(:)

2.2 需要处理的

文件类型

处理方式

具有破折号(-)的文件

$ touch -- -abc.txt

具有HASH(#)的文件

$ touch '#abc.txt'

具有分号(;)的文件

$ touch ';abc.txt'

具有美元符号($)的文件

$ touch '$12.txt'

具有感叹号(!)的文件

$ touch '!12.txt'

具有符号(@)的文件

$ touch '@12.txt'

具有&符(&) 的文件

$ touch '&12.txt'

具有括号()的文件

$ touch '(12.txt)'

具有反斜线(\)$的文件

$ touch '\12.txt'

具有Chevrons <>的文件名

$ touch ''

2.3 其他类型

具有星号(*)的文件

不需要处理的,删除选时间需要注意

前倾斜的特殊情况

你不能创建一个文件名,其中包括正斜杠(/)直到你的文件系统错误。 没有办法逃脱前斜线。

所以,如果你可以创建一个文件,如“/12.txt’或’B / c.txt’,那么你的文件系统有错误或你有Unicode支持,它可以让你创建一个斜杠的文件。 在这种情况下,正斜杠不是真正的正斜杠,而是一个看起来像正斜杠的Unicode字符。

文件名中的点标记(。)

在文件名中包含引号(单引号和双引号) 要在文件名中加引号,我们必须使用交换规则。 也就是说,如果您需要在文件名中包含单引号,请用双引号将文件名括起来,如果您需要在文件名中有双引号,请用单引号括起来

文件名中的波浪号(〜)

在Linux中一些编辑器Emacs等创建该文件的备份文件进行编辑。 备份文件具有原始文件的名称以及文件名末尾的波浪号。 您可以有一个文件,其名称包括波浪号,在任何位置简单为:

java文件名特殊符号_linux命令行下文件名中包含特殊符号如何的处理方法相关推荐

  1. Linux 命令行访问名字中包含空格的文件或文件夹

    Linux 命令行访问名字中包含空格的文件或文件夹 在 Windows 下命名文件或文件夹名有空格是可以的,甚至在 Windows 和 Ubuntu 虚拟机共享的文件中也可以这么做,但是在 Ubunt ...

  2. java运行class文件_java命令行下运行class文件

    今天碰到了一个很变态的问题,写了一个很简单的HelloWord.java,内容如下: package com.yanjiuyanjiu; public class HelloWorld { publi ...

  3. java dos平台压缩_DOS命令行下使用HaoZip进行文件压缩的方法

    DOS命令,计算机术语,是指DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令.磁盘操作类命令.文件操作类命令和其它命令. 大家常用的操作系统有windows10,windows ...

  4. ubuntu命令行启动浏览器_linux命令行下使用linux打开浏览器命令

    linux命令行下使用linux打开浏览器命令: linux命令行:Lynx浏览中文网页的方法(1): 首先:按o键盘进入设定画面 Display character set : [chinese] ...

  5. linux命令行下读取u盘内容_Linux命令行下的快捷键

    1. 命令行下的快捷键 经常在命令行下工作的同志们,可能用的最多的就是两个上下键,主要用来调出 历史命令:使用左右箭头使光标向后或向前移动以修改上次使用过的命令.其实 这样做效率并不是很高,有了快捷键 ...

  6. windows命令行下测试网速和查看公网IP的方法

    1.测网速 首先下载测试工具 pip install speedtest-cli 测速,其实在这里也可以看到自己的公网IP speedtest-cli #既显示下载速度,也显示上传速度 speedte ...

  7. 命令行下一种新的加帐号的方法

    今天研究了一下用户控制面板文件nusrmgr.cpl,发现调用的是Shell.Users来加用户,它还同时调用了 wscript.shell.Shell.Application.Shell.Local ...

  8. linux下备份mysql上传到网盘_Linux命令行上传文件到百度网盘

    最近在学习 MySQL 的 bin-log 时候考虑到数据备份的问题,突然想到如果能将数据通过 Linux 命令行方式备份到百度网盘,那是一件多么牛逼的事情.百度网盘有免费的 2TB 存储空间,而且有 ...

  9. 命令行下运行 java someClass.class出现 “错误:找不到或无法加载主类someClass ” 的解决方案

    命令行下运行 java someClass.class出现 "错误:找不到或无法加载主类someClass " 的解决方案 参考文章: (1)命令行下运行 java someCla ...

最新文章

  1. php mysql 连接不上_PHP: 连接状态 - Manual
  2. C++中static关键字作用
  3. ubuntu14.6 密码重置_已迁移
  4. Keras 文本预处理 text sequence
  5. 多线程:AQS的一些心得
  6. Ubuntu下VIM使用指南
  7. Spring Boot + Mybatis 实现动态数据源
  8. 远程桌面时提示凭证不工作问题的终极解决办法
  9. 前端知识:如何创建自己的Iconfont图标库
  10. Spring : Spring @Transactional 事物管理入口
  11. 解决moss的log文件不断变大的办法
  12. @程序员:别人身边的小姐姐是这样来的,你能学学吗
  13. LabelImg,LabelMe工具标注后的图片数据增强
  14. linux git clone 401,Git Eclipse:401未经授权的错误
  15. js调用摄像头拍照上传图片
  16. esp8266教程:定时器之原理基础
  17. Hive面试题汇总大全
  18. R语言 dbWriteTable 写入数据库为空和乱码问题
  19. 荷塘趣事计算机作业,【《荷塘趣事》摄影图片】生态摄影_人称开哥_太平洋电脑网摄影部落...
  20. MT2625 NB IoT_RF资料分享

热门文章

  1. 华为防火墙NAT情况下的黑洞路由
  2. Sqlite case函数
  3. 经典查找算法学习总结
  4. 爬取智联招聘有用信息存入数据库
  5. 2006年全球十大宜居城市
  6. 【WY】数据分析 — 关系网络阶段一 :进阶语法 一 —— 关系网络图
  7. hdu 2732 Leapin' Lizards (经典网络流)
  8. 《脱颖而出——成功网店经营之道》一第1章 电商风云起
  9. 基于TensorFlow的VGG16模型源码
  10. C++入门——构造函数和析构函数