源文件名与目标文件名
什么是标志的矢量图和源文件?
什么是标志的矢量图和源文件?
矢量图,也称为面向对象的图像或绘图图像,在数学上定义为一系列由线连接的点。源文件是相对目标文件和可执行文件而言的。源文件就是用汇编语言或高级语言写出来的代码保存为文件后的结果。
c程序中能直接让机器执行的文件是?
可以看后缀名呀。一般C语言的源文件的扩展名是.c 目标文件的扩展名是.obj 可执行文件的扩展名是.exe。 C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件。源文件和目标文件一般不能直接运行,要通过编译器转化成可执行文件才能运行。
linux修改目录名称?
Linux使用mv指令来修改目录名称
命令格式:
mv [选项] 源文件或目录 目标文件或目录
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
mv 操作文件时是移动并且重命名。
目标目录与原目录一致,指定了新文件名,效果就是仅仅重命名。
Linux下如何使用文件列表批量重命名文件?
Linux下批量重命名文件操作起来效率非常高,几个命令就能够搞定,经理我还是老套路,先把问题分解:
读取使用文件列表
解析文件列表的信息,重命名文件
所以能够看出来读取并且解析文件列表是比较核心关键的。
读取解析文件列表不知道题主说的用来重命名文件列表的文件大致是什么样子,那我就举一个相对常见的例子吧,来看这个用作重命名的filelist文件内容:
日照香炉生紫烟.txt 遥看瀑布挂前川.txt
举头望明月.txt 低头思故乡.txt
桃花潭水深千尺.txt 不及汪伦送我情.txt
第一列是源文件名,第二列是目标文件名。也就是说要将第一列的文件名重新命名为第二列的文件名。看到这样的分列,马上我们就想到了awk命令。现在这个问题就转换成了这样一个流程:
先用cat读入文件内容,再使用awk将每一行的分列中的内容分别取出,最后需要将取出的域变成mv命令的两个参数。
我们先做解析文件:
cat filelist | awk -F {print $1;print $2}
-F参数和后面的空格字符指定了域分隔符为空格,然后输出两个域的内容,用分号分隔开是为了作为两个字符串输出(←这里是重点)。
解析文件列表的信息,重命名文件在这里我们需要将上一节设计的命令的输出结果作为参数传递给mv语句来实现重命名。这里用到的命令是xargs。xargs可以接收管道传递过来的字符串作为参数给后面的命令使用,比如:
echo man.txt | xargs -I{} mv {} ager.txt
这一句的意思就是将
man.txt
作为后面mv的第一个参数,通过xargs传递给mv。xargs的-I参数指定后面的花括号{}作为参数的占位符,等同于传递过来的参数。
我们要实现的效果稍微复杂一点,因为我们的mv需要两个参数,要用到xargs的-n2参数来指定传递参数的个数为2。所以我们需要的语句的最终形式是这样的:
cat filelist | awk -F {print $1;print $2}|xargs -n2 mv
看一下效果:
完美解决问题。
总结一下,批量重命名还有其它的办法(我知道你又要说用while循环),但是我觉得这个应该是比较方便的了。源文件和目标文件的名字稍微处理一下,按照这种格式保存成为文本文档,一串命令就搞定。
关于像这样的批量重命名的操作,很多类似“运维面试100题”之类的文章里可能都有涉及,但是语焉不详,命令生涩难记。学习Linux最好的办法就是自己实际操作一下,更好的办法就是关注经理,每天看经理的悟空问答,每天都有这类小操作的详细解答。一天学一点,100天之后就会发现一个不同的自己。
如果我的回答对你有点价值,请莫忘点赞加关注,谢谢!欢迎在评论区发表各种意见。
本文为作者原创,严禁转载,违者必究。