更新時間:2021-01-07 17:27:50 來源:動力節點 瀏覽1261次
文件后綴名也叫文件擴展名,是用來表示某種文件格式所采用的機制。文件擴展名是加在主文件名后面的,用“.”分隔。不同的軟件要求不同的文件格式,后綴名可以幫助用戶了解文件是應該使用哪種軟件打開文件。在Linux系統中,文件需要Linux遞歸修改后綴名。
Linux遞歸修改后綴名需要用到以下三個命令:
1.find
2.awk
3.xargs
遞歸修改命令如下:
find . -name '*.XXX' | awk -F "." '{print $2}' | xargs -i -t mv ./{}.XXX ./{}.XXXX
把XXX后綴修改為XXXX。
1.find
find用來在指定目錄下查找文件,位于參數之前的字符串都被視為需要查找的目錄。 find . -name '*.XXX'中:
.表示當前文件夾
-name表示文件名符合name的文件,有一個類似的-iname會忽略大小寫
*.XXX表示尋找所有的XXX后綴的文件
其他常用例子:
find . -type f:遞歸列出一般文件
find . -ctime -20:遞歸列出最近20天內更新過的文件
find /var/log -type f -mtime +7 -ok rm {} \;:查找/var/log下更新時間在7日以前的普通文件,并在刪除之前詢問
find . -type f -perm 644 -exec ls -l {} \;:查找當前目錄下權限為644的文件
find / -type f -size 0 -exec ls -l {} \;:查找/下文件大小為0的普通文件并列出完整路徑。
2. awk
awk是一種處理文本文件的語言,是一個強大的分析工具。 awk -F "." '{print $2}'中:
-F指定輸入文件拆分分隔符,因為需要修改后綴名,后綴名與主文件名由.分隔,因此后面加上"."參數
'{print $2}':print表示打印,$在awk中表示字段引用,這里$2表示引用第二個字段,字段根據前面的-F參數進行分隔。
因為find打印出來的是./a/b/c.XXX,因此print $2會打印其中第二個字段,就是路徑/a/b/c,而print $1為空(因為第一個.之前沒有其他內容),print $3為后綴名。
3.xargs
xargs是給命令傳遞參數的一個過濾器,可以將管道或者標準輸入數據轉換為命令行參數,默認的命令為echo。使用xargs可以對不支持管道的命令添加類似管道的功能,比如:
find . -name '*.jpg' | ls -l
# 錯誤,但是能執行,執行的結果僅僅是ls -l的結果
find . -name '*.jpg' | xargs ls -l
# 正確
xargs -i -t mv ./{}.XXX ./{}.XXXX中:
-i表示將xargs的每項名稱,一般是一行一行賦值給后面的{}
-t可選,表示先打印需要執行的命令(這里是先打印mv)再執行
mv:重命名
{}:配合-i使用,這里的{}表示前一步awk中的路徑名,對每一個路徑都執行一次mv,也就是修改后綴名。
以上就是Linux遞歸修改后綴名需要用到的三個命令,缺一不可。在本站的Linux教程中,對Linux中文件的許多操作命令都有詳細的介紹,感興趣的小伙伴可以在你的Linux系統中對文件進行相應的命令操作,檢驗一下是否可行。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習