ls -l|awk '{print $9}'|xargs -I{} mv {} {}bak
[root@ test]# touch a b c
[root@ test]# ls -l
total 0
-rw-r--r-- 1 root root 0 Apr 27 21:50 a
-rw-r--r-- 1 root root 0 Apr 27 21:50 b
-rw-r--r-- 1 root root 0 Apr 27 21:50 c
[root@ test]# ls -l|awk '{print $9}'|xargs -I{} mv {} {}bak
[root@ test]# ls -l
total 0
-rw-r--r-- 1 root root 0 Apr 27 21:50 abak
-rw-r--r-- 1 root root 0 Apr 27 21:50 bbak
-rw-r--r-- 1 root root 0 Apr 27 21:50 cbak
如果您想批量更改文件夹的名称,您可以使用以下方法之一:
在 Windows 上使用批处理脚本:
您可以创建一个批处理脚本并将其用于批量更改文件夹名称。以下是一个简单的批处理脚本示例:
@echo offfor /d %%a in () do ( set oldname=%%a set newname=new_%%a
ren %oldname% %newname%
)
在 macOS 和 Linux 上使用命令行:
您可以在命令行中使用以下命令批量更改文件夹名称:
bashCopy codefor f in ; do mv "$f" "new_$f"; done请注意,在使用以上方法之前,请务必备份您的文件。
dir C:\Users\user\Desktop\123456 -Recurse | ForEach-Object {$count =1}{Rename-Item -Path $_FullName -NewName ("test{0}{1}" -f $count,[SystemIOPath]::GetExtension($_FullName));$count++}以上Code把桌面文件夹123456里面的所有文件包括Folder及Folder里面的所有内容改名为test+数字+文件后缀的形式,数字为递增。上面的代码虽然可以批量修改成功,但会提示重命名前后的文件路径应该不同,所以建议在批量修改前手动备份,然后将批处理后的文件放在一个不同的路径下。仅供参考,可以自己尝试发挥。
linux的文件重命名常用的是mv命令和rename命令,具体重命名的 *** 作步骤如下:
1、首先我们打开一个虚拟机。
2、进入终端命令界面,先用“cd”命令进入文件所在文件夹中。
3、可以先创建一个文件(”touch“),再“ls”一下发现成功创建了一个“oldtxt”文件。
4、输入命令:mv 修改前文件名 修改后文件名,按回车。
5、输入命令“ls”,可以看到文件重命名为新的了。
1、可以借助于shell命令执行另一个脚本文件或者用变量保存。比如ash和bsh,ash中调用bsh的代码,一起输出"hello world"的字符串。bsh的代码如下echo " world!"。
2、ash可以借助""来执行bsh脚本,bsh执行结果可以保存在变量中,也可直接输出,ash中的内容如下:echo "可以用命令来执行脚本文件"echo "hello `/bsh`"var=`/bsh`echo"hello $var";。
3、ash也可以借助source命令执行bsh脚本,bsh执行结果可以保存在变量中,也可直接输出。ash中的内容如下:echo "用source命令执行脚本文件"echo "hello `source /bsh`"var=`source /bsh`echo "hello $var"。
4、ash中也可以借助于bash、sh等命令来执行bsh脚本,bsh的执行结果可以保存在变量中,也可以直接输出。ash中的内容如下。
5、另外,也可以使用$(),将bsh的执行结果的内容保存到变量中,就完成了。
提供一个在Linux下使用Shell脚本来批量改名的方法,我很久不用Windows系统了,所以只有Linux下的方法。
我这边在Linux下的测试过程是下面这样的:
「0」提醒:在终端terminal中,第一步就是把当前目录切换到文件所在目录,用cd命令。
「1」新建文件夹,起名为「rename_by_source」,用来放置「改名前的文件」、「shell脚本文件」、「文件名对应文件」,以及保存「改名后的文件」。你在自己电脑上 *** 作时,也建议你把下载下来的需要改名的文件放到一个单独的文件夹里,这样容易查看一些。
「2」我新建的「rename_by_source」文件夹中,根据你给的文件名对应表,新建了4个「改名前的文件」,它们是空白文件,只是有个文件名而已,另外,估计文件类型是mp3文件,所以后缀名是mp3,如果你的文件不是mp3类型的话,请届时自行在shell脚本文件里更改相关的代码行。
「3」在文件夹中,新建了「source_nametxt」文件,用来放置(改名前)与(改名后)的对应文件名,跟你给的一样,也是一行对应一个文件的,只不过,把ren那一列删除了。如果你要直接使用下面提供的shell脚本的话,也请把你的文件名对应文件中的ren那一列删除,并且「数字」名的前面不要有空格或其它字符。同时,你的文件名对应文件也请保存为「source_nametxt」这个名称和格式的文件。
「4」shell脚本文件「rename_by_sourcesh」,内容如下:
#!/bin/bashcat source_nametxt | while read LINE
do
ori_name=${LINE:0:7};
des_name=${LINE:8};
cp "${ori_name}mp3" "${des_name}mp3";
done
解释一下,第3句是逐行读取source_nametxt的内容,并赋值给变量LINE,第5句是把该行的第1至第8个字符作为原始文件名,第6句是把该行的第9至末尾的字符串作为新文件名,第7句是在当前文件夹下「复制」(原始文件名mp3)文件并重命名为(新文件名mp3)文件。
之所以采用「复制」而不是「移动」命令,主要还是希望避免误 *** 作。
「5」在前面的文件夹中,新建并保存上述shell脚本文件,然后在终端terminal里赋予此shell脚本文件的可执行权限,反正也没有什么关系,我是直接改为了777权限:
sudo chmod 777 rename_by_sourcesh「6」在终端中,在当前文件夹下运行上述shell脚本文件:
/rename_by_sourcesh完成。
下面是我这里的测试截图,
搞定。
上述shell脚本及演示文件等,已放入百度网盘, 「82jd」,请自取,有效期7天!(链接的前面部分,请自行补充。)
如有帮助,烦请采纳,谢谢!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)