全球主机交流论坛

标题: linux 随机重命名? [打印本页]

作者: lcslan    时间: 2017-1-28 18:28
标题: linux 随机重命名?
请教大家一下!
一个文件夹里有面50多个文件!
分别是
1.txt
2.txt
......
50.txt

想用个命令吧文件名字修改一下,原文件名不动的前提下在从文件名前面加上随机字符(数字,字母均可)

最后可以批量修改的!


作者: 靓坤    时间: 2017-1-28 19:18
用py?个人感觉挺简单的
作者: veryluckko    时间: 2017-1-28 21:52
  1. echo -e '#!/bin/bash\nmv $1 $RANDOM$1' > test.sh && chmod +x test.sh && ls *.txt | xargs -t -I {} ./test.sh {}
复制代码

献个丑
作者: lcslan    时间: 2017-1-29 18:29
veryluckko 发表于 2017-1-28 21:52
献个丑

亲!这个能单独一行一行的打一下吗?最好配上个注释。。。。谢谢了先
作者: 老神仙    时间: 2017-1-29 18:52
本帖最后由 老神仙 于 2017-1-29 18:56 编辑
lcslan 发表于 2017-1-29 18:29
亲!这个能单独一行一行的打一下吗?最好配上个注释。。。。谢谢了先


把#!/bin/bash\nmv $1 $RANDOM$1 保存成test.sh(注意换行符格式,mv命令用来为文件或目录改名、或将文件或目录移入其它位置。)
然后给他权限 chmod +x test.sh
ls *.txt 列出txt列表
xargs将参数列表转换成小块分段传递给其他命令
-t 表示先打印命令,然后再执行
-I 指定替换字符

作者: 老神仙    时间: 2017-1-29 18:56
veryluckko 发表于 2017-1-28 21:52
献个丑

666
作者: lcslan    时间: 2017-1-29 18:59
老神仙 发表于 2017-1-29 18:52
把#!/bin/bash\nmv $1 $RANDOM$1 保存成test.sh(注意换行符格式,mv命令用来为文件或目录改名、或将文件 ...

echo -e '#!/bin/bash\nmv $1 $RANDOM$1' > test.sh && chmod +x test.sh && ls *.txt | xargs -t -I {} ./test.sh {}

这句在SSH执行后没有成功!

返回
mv: target `(1).txt' is not a directory

作者: veryluckko    时间: 2017-1-30 00:04
lcslan 发表于 2017-1-29 18:59
echo -e '#!/bin/bash\nmv $1 $RANDOM$1' > test.sh && chmod +x test.sh && ls *.txt | xargs -t -I {}  ...


把带括号的文件命名成不带括号的试试
作者: lcslan    时间: 2017-1-30 00:29
本帖最后由 lcslan 于 2017-1-30 00:35 编辑
veryluckko 发表于 2017-1-30 00:04
把带括号的文件命名成不带括号的试试


成功更名!我在想问一下这个随机的文件名是数字的几位不一定有的是5位有的是6位可以缩短到3位吗?

还有就是可否把这个随机数字改到后面?比如1.txt 改成1随机.txt ??


作者: veryluckko    时间: 2017-1-30 01:53
lcslan 发表于 2017-1-30 00:29
成功更名!我在想问一下这个随机的文件名是数字的几位不一定有的是5位有的是6位可以缩短到3位吗?

还有 ...

这个不难,自己动手丰衣足食
作者: lcslan    时间: 2017-1-30 09:40
经过网上搜索了半天!用这个代码可以控制三位数字 :date +%s%N | cut -c11-13
问题又来了替换了RANDOM 这个执行不成功!还有我实在不知道该怎么把数字换到文件名的后面!多次修改不成功!还求大佬赐教!
echo -e '#!/bin/bash\nmv $1 $RANDOM$1' > test.sh && chmod +x test.sh && ls *.txt | xargs -t -I {} ./test.sh {}

作者: lcslan    时间: 2017-1-30 09:41
veryluckko 发表于 2017-1-30 01:53
这个不难,自己动手丰衣足食


经过网上搜索了半天!用这个代码可以控制三位数字 :date +%s%N | cut -c11-13
问题又来了替换了RANDOM 这个执行不成功!还有我实在不知道该怎么把数字换到文件名的后面!多次修改不成功!还求大佬赐教!
echo -e '#!/bin/bash\nmv $1 $RANDOM$1' > test.sh && chmod +x test.sh && ls *.txt | xargs -t -I {} ./test.sh {}
作者: liangcq132    时间: 2017-1-30 14:53
都是大、牛




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4