问题描述
- 新人提问很多linux shell命令
-
我现在在看linux shell脚本攻略第二版,看完第二章之后,里面有好几条shell命令我看不懂,请大神来每条命令不吝赐教一下
1.$ find . -type f -name "*.c" -exec cat {} ; all_c_file.txt,这条命令我想问-exec后面是什么意思?
2.$ find . -type f -mtime +10 -name "*.txt" -exec cp {} OLD ;
3.$rename 's/ /_/g' * 这条命令我不知道 's/ /_/g'这里是什么意思?
4.$rename 'y/A-Z/a-z/' *
希望大神能够不吝赐教,详细解析一下
解决方案
-exec表示执行什么命令。后面跟要执行的命令。此处是cat ,表示一次显示整个文件
{} ;表示把查找到的结果发送到此来。
-exec 参数后面跟的是 command命令,注意点如下:
command命令的终止,使用 ';' (分号)来判定,在后面必须有一个 ';'
'{}',使用{}来表示文件名,也就是find前面处理过程中过滤出来的文件,用于command命令进行处理,分号必须用转义。
整句命令表示:在当前目录下查找以.c结尾的文件,并在控制台显示
解决方案二:
rename这些都是正则语法。/g是全部替换。用_替换空格。小写字母替换大写字母
解决方案三:
楼上的说了-exec表示执行什么命令
我补充一下
's/ / _ /g' * 删除文件名中所有的 _
'y/A-Z/a-z/' *把所有文件名内含有大小字母的,修改为小写字母
解决方案四:
楼上的说了-exec表示执行什么命令
我补充一下
's/ / _ /g' * 删除文件名中所有的 _
'y/A-Z/a-z/' *把所有文件名内含有大小字母的,修改为小写字母
时间: 2025-01-01 15:23:50