版权声明:本文系作者原创。未经许可,不得转载。

以前写的代码没有加上版权信息。后来要全部添加,一个一个添加当然很慢,于是写了一个脚本自动添加。

基本思路:

1、列出目录下所有文件

2、得到后缀名,根据后缀名添加不同格式的信息。

脚本如下:

AddCopyrightInformation/addInfoToAllFile.sh

#!/bin/bash

[ "$1" ] || {

echo "Usage: $0 /dir/path"

exit 1

}

_dir=$1

filelist=`./script/getAllFile.sh $_dir`

for file in $filelist

do

infotype=`./script/judgeInfoType.sh $file`

./script/addToSingleFile.sh $file $infotype

done

AddCopyrightInformation/script/addToSingleFile.sh

#!/bin/sh

filepath=$1

infotype=$2

if [ "$infotype"x = "asterisk"x ]; then

cat ./info/cppinfo.txt $filepath > $filepath.tmp

mv $filepath.tmp $filepath

elif [ "$infotype"x = "octothorpe"x ]; then

cat ./info/shellinfo.txt $filepath > $filepath.tmp

mv $filepath.tmp $filepath

elif [ "$infotype"x = "hyphen"x ]; then

cat ./info/xmlinfo.txt $filepath > $filepath.tmp

mv $filepath.tmp $filepath

fi

AddCopyrightInformation/script/getAllFile.sh

#!/bin/bash

nowdir=$1

find $nowdir -type f

AddCopyrightInformation/script/judgeInfoType.sh

#!/bin/bash

[ "$1" ] || {

echo "Usage: $0 filepath"

exit 1

}

filepath=$1

filename=`basename $filepath`

extensionname=${filename##*.}

if [ "$extensionname"x = "cpp"x ]; then

echo "asterisk"

elif [ "$extensionname"x = "qml"x ]; then

echo "asterisk"

elif [ "$extensionname"x = "spec"x ]; then

echo "octothorpe"

elif [ "$extensionname"x = "h"x ]; then

echo "asterisk"

elif [ "$extensionname"x = "pro"x ]; then

echo "octothorpe"

elif [ "$extensionname"x = "pri"x ]; then

echo "octothorpe"

elif [ "$extensionname"x = "js"x ]; then

echo "asterisk"

fi

AddCopyrightInformation/info/cppinfo.txt

/*

This file is part of cmos-compositor

*

Copyright (C) 2014 Beijing Yuan Xin Technology Co.,Ltd. All rights reserved.

*

Authors:

Peng Huaping

Xie Yan

Li Jing

Liu Jiawei

This software, including documentation, is protected by copyright controlled

by Beijing Yuan Xin Technology Co.,Ltd. All rights are reserved.

*/

AddCopyrightInformation/info/shellinfo.txt

#

# This file is part of cmos-compositor

#

# Copyright (C) 2014 Beijing Yuan Xin Technology Co.,Ltd. All rights reserved.

#

# Authors:

# Peng Huaping

# Xie Yan

# Li Jing

# Liu Jiawei

#

# This software, including documentation, is protected by copyright controlled

# by Beijing Yuan Xin Technology Co.,Ltd. All rights are reserved.

#

AddCopyrightInformation/info/xmlinfo.txt

使用方式如下:

1、将需要添加版权信息的源代码备份。

2、进入到脚本目录,修改info目录下的三个txt文件,将文件中的模块名称和作者名称修改,保存退出。然后,执行脚本:

cd AddCopyrightInformation

./addInfoToAllFile.sh /home/simba/virtualshare/cmos-photos

注:参数为需要添加版权信息的模块的目录,最好是绝对路径.

3、程序执行完成之后,检查确认。

注:新建的文件,可以使用IDE自动添加。

php批量给文件添加头部版权,给代码添加版权信息相关推荐

  1. 【笔记】python os的使用 文件批量重命名 批量移动文件 将png转jpg代码

    对于os的使用总是容易混淆,这里记录一下. print(os.listdir(os.path.join("C:/Users/pic"))) tagg = pandas.read_c ...

  2. vscode添加头部注释快捷键

    在vscode内安装扩展: 在settings.json文件内加入下面的代码:把"XXXX"换成自己喜欢的昵称. {"psi-header.changes-trackin ...

  3. iOS-UIWebView添加头部和尾部

    2019独角兽企业重金招聘Python工程师标准>>> 前言 项目中使用UIWebView显示本地或者是服务器上的页面很容易,但是仅限于显示页面,可控性并不高,如果有需要在头部和尾部 ...

  4. python批量新建文件夹_python批量创建指定名称的文件夹

    本文实例为大家分享了python批量创建指定名称的文件夹具体代码,供大家参考,具体内容如下 继删除多余文件之后,做了一些数据处理,需要重新保存数据,但文件夹的名称又不能改 所以只能创建新的文件夹,换个 ...

  5. Android 给RecyclerView添加头部和尾部

    之前我在GitHub上开源了一个可以实现RecyclerView列表分组的通用Adapter: GroupedRecyclerViewAdapter.也在博客上写了一篇专门介绍它的实现和使用的文章:& ...

  6. C++批量提取文件夹名

    经过查询,在c++中批量提取文件的核心代码如下: ```cpp void getFiles( string path, vector<string>& files ) {//文件句 ...

  7. python 批量增加文件前缀_linux中批量添加文件前缀的操作方法

    linux中批量添加文件前缀的操作方法 需要在文件夹内所有txt文件的文件名前面添加"gt_"; 就是由原来的文件"xxx.txt"变成"gt_xxx ...

  8. ftp服务器怎么添加文件夹,批量建立文件夹,为Serv_U批量创建用户

    批量建立文件夹,为Serv_U批量创建用户 更新时间:2011年04月03日 00:50:27   作者: 最近要用serv u为用户开ftp服务器,而且一个目录对应一个账号,账号很多,一个一个的建立 ...

  9. 潇洒郎:吐血经验——用python 结合好压软件 实现批量压缩文件或文件夹、并同时添加压缩密码方法———因为zipfile模块或者其他模块无法实现为文件添加压缩密码

    python 结合好压软件 实现批量压缩文件或文件夹.并同时添加压缩密码 先说说写本博客的缘由,也是吐血的经验教训: 由于一些原因需要为大量文件资料添加压缩密码,而好压软件只能实现单个文件压缩,不能进 ...

最新文章

  1. static string java_java:String类、static关键字、Arrays类、 Math类
  2. Linux下undefined reference to ‘pthread_create’问题解决
  3. 客户/服务器模型:编程思想
  4. 霸主–统治和管理API的地方
  5. 学习echarts需要先学习java 吗_Echarts和Echarts-java类库简单使用方法
  6. 去除 Css 表单自动填充黄色背景
  7. DSP之通信之MMC控制器
  8. 如何使用@PostConstruct初始化敏感词库和hutool过滤敏感词信息
  9. 扬州晶澳-年产3GW高性能太阳能光伏组件项目 Acrel-3000WEB电能管理系统的设计及应用
  10. 超级网际搜索(SuperSearch) - 3月30日最新版V5.1.28.94,内置140个搜索引擎
  11. 在线答题-问卷调查小系统(附源码)
  12. 计算机共享在哪里找,电脑共享文件在哪里找
  13. 苹果App卡审原因猜测分析
  14. 桌面上的计算机图标的功能是什么,桌面上计算机图标不见了的解决方法教程
  15. 小事认真,大事才会卓越
  16. 如何用纯CSS将图片填满div,自适应容器大小
  17. 电镀废水处理工艺 离子交换树脂回收镍 硫酸镍经济效益越来越高 电镀废水如何获利 含重金属废水处理工艺
  18. 字段类型与合理的选择字段类型
  19. wingrub 使用说明
  20. 学校计算机机房应急预案,中心机房应急预案管理制度

热门文章

  1. 由于无法验证发布者 所以windows阻止此软件
  2. Android破解过程-滚动的天空
  3. android8 三星a9,三星GalaxyA9评测 已经远远超出中端手机的水平
  4. 苹果手机测距离_重量仅6g,智能距离检测,安卓苹果平板手机都能用,声光多级提醒...
  5. 一些常用的mysql语句实例-以后照写2
  6. java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)和错误原因 解决方案:
  7. Android基础 《密西西比河谷州立大学:Android应用程序开发》(一)
  8. ANSYS FLUENT二维结构网络数值计算及后处理——流动传热
  9. proteus中示波器的各刻度的含义
  10. 对多个Word文件批量添加页码,自由分页。Word精灵V5.0