Linux批量修改多个文件名

terminal

今天需要在服务器上用正则表达式来替换许多文件名中的某些字符。

于是google了”linux 批量改名”,发现rename这个工具可以满足需求,然而Google到的rename的中文说明发现它们所描述的内容已经不符合现在的版本而无法使用,所以研究了一下(也只是man rename罢了)记录下来:

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

这其中:-v 如果指定,则在屏幕回显修改的文件名
-n 如果指定,则不对文件名实际修改仅显示修改结果(测试用)
-f 如果指定,则强制覆盖已有文件
perlexpr 一个Perl风格的正则表达式
files 文件名通配符

示例:

rename s/_/-/ *.jpg  #修改所有的包含_的.jpg文件中的_为-

控制台BT客户端——CTorrent

今天因为一些原因希望下载一个已经没啥种子的torrent,想到了借用VPS的力量(主要是高带宽优势和区域优势),所以在VPS先安装了一个官方bittorrent,结果装出来一堆命令真是让人眼花了,觉得没爱,继续google之后,决定尝试一下这个CTorrent,使用了一下觉得临时对付一下还是十分方便的~(在Ubuntu上,apt上的已经是CTorrent的修改版——Enhanced CTorrent)

命令范例:

ctorrent -s /temp -e 1 -C 32 -p 7777 test.torrent

其中-s参数指定存储路径,-e指定做种时间(单位小时),-C缓存容量(单位M),-p绑定端口,开启后会显示上传和下载的详细信息:

Listening on 0.0.0.0:7777
Press 'h' or '?' for help (display/control client options).
/ 25/75/1589 [618/1719/1719] 156MB,46MB | 226,54K/s | 224,16K E:0,1

另外还可以使用-d参数进入后台运行的模式(运用fork实现),-h查看帮助~

原作者自称为YuHong,看来是个中国人,支持一下!

Enhanced CTorrent

CTorrent官方网站(项目已经停止更新)

作者本人在FreeBSD China论坛的发布帖

某人写的一篇CTorrent源码解读

Linux批量替换多文件文本

将某目录中所有文件中的文本“abcde”替换成“vifix”:

1.sed方案:

sed -i "s/abcde/vifix/g" `grep abcde -rl /home/test`

2.perl方案:

perl -p -i -e "s/abcde/vifix/g" *

CMD批处理大量隐藏+系统+只读属性的文件夹

嘛,近来有病毒批量修改USB存储设备的文件夹属性,设置为”系统” + “隐藏” + “只读”,给使用带来巨大不便,消灭病毒后手动恢复这些属性也十分麻烦。
稍微研究了一下批处理的for的用法,写了这个批处理,遍历所有当前目录下的隐藏目录,并且取消”系统”/”隐藏”/”只读”的属性。

FOR /f "delims=" %%i IN ('dir /b /s /a:dh') DO (
 ECHO %%i
 ATTRIB -s -h -r "%%i"
)
PAUSE

把以上内容保存为.bat或者.cmd,在需要的目录下执行即可(一般是移动硬盘/U盘根目录)