新人提问很多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/' *
希望大神能够不吝赐教,详细解析一下

4个回答

-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/' *把所有文件名内含有大小字母的,修改为小写字母

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问