用shell脚本批量删除文件名后缀
1、前言
在用腳本編譯或者打包程序時,有時候涉及到一些文件名后綴的處理,在這里介紹的是批量刪除文件名后綴的腳本,使用shell腳本實現。
2.腳本
find $PATH -name "*-rsa2048" | awk -F "-rsa" '{print $1}' | xargs -i -t mv ./{}-rsa2048 ./{}3、腳本解析
解析:以myfile目錄下有name1-rsa2048 name2-rsa2048 example為例。
(1)“|”:這個符號的作用相當于管道,把上一句命令的輸出當做下一句命令的輸入;
(2)xargs:xargs是Linux中的命令,常與管道(“|”)一起使用。之所以能用到這個命令,關鍵是由于很多命令不支持|管道來傳遞參數,而日常工作中有有這個必要,所以就有了 xargs 命令。
-i 或者是-I,這得看linux支持了,將xargs的每項名稱,一般是一行一行賦值給 {},可以用 {} 代替。
-t 表示先打印命令,然后再執行
例如:
find /sbin -perm +700 |ls -l #這個命令是錯誤的
find /sbin -perm +700 |xargs ls -l #這樣才是正確的
(3)find ./myfile/ -name “*-rsa2048”:查找myfile/路徑下文件名以"-rsa2048"結尾的文件;
(4)awk -F “-rsa” ‘{print $1}’:以"-rsa"為分隔符,將文件名分為兩部分;
(5)xargs -i -t mv ./{}-rsa2048 ./{}:依次將上一步的{print $1}賦值給{},執行mv語句
(6)整句腳本的作用:將myfile目錄下以"-rsa2048"結尾的文件名重新命名,刪除掉"-rsa2048"后綴。
總結
以上是生活随笔為你收集整理的用shell脚本批量删除文件名后缀的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux网络应用环境,Linux网络环
- 下一篇: 拓展软文写作主题角度