問題:linux系統中文件名包含中文,導致頁面訪問不了文件。就是上條博客中的解決方法二遺留問題。
文件名中有以下格式:TC2_諾而達銅管(中山)有限公司.pdf ,要改為TC2.pdf,去掉中文部分
1、先了解linux 獲取文件名,截取字符串的方法:使用${}。原文地址:https://blog.csdn.net/fengmm521/article/details/78446475
1)${var##*/}
該命令的作用是去掉變量var從左邊算起的最后一個'/'字符及其左邊的內容,返回從左邊算起的最后一個'/'(不含該字符)的右邊的內容。
2)${var#*/}
該命令的作用是去掉變量var從左邊算起的第一個'/'字符及其左邊的內容,返回從左邊算起第一個'/'(不含該字符)的右邊部分的內容。
3)${var%/*}
該命令的使用是去掉變量var從右邊算起的第一個'/'字符及其右邊的內容,返回從右邊算起的第一個'/'(不含該字符)的左邊的內容
4)${var%%/*}
該命令的使用是去掉變量var從右邊算起的最后一個'/'字符及其右邊的內容,返回從右邊算起的最后一個'/'(不含該字符。
例子如圖:
${}總結
--------------------- 本文來自 woodcol 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/fengmm521/article/details/78446475?utm_source=copy
2、批量修改文件名方法:
方法一:mv配合for循環方式進行修改
for name in `ls *.pdf`;do mv $name ${name%_*}.pdf;done
解釋說明:‘ls *.pdf’是改目錄下所有的pdf文件,mv 源文件名 替換文件名,${name%_*}:去掉文件名‘_’右邊的字符串,留下左邊的
方法二:sed命令
方法三:rename命令
rename命令用字符串替換的方式批量改變文件名。
格式:rename 原名 替換名 要改的文件
原字符串:將文件名需要替換的字符串; 目標字符串:將文件名中含有的原字符替換成目標字符串; 文件:指定要改變文件名的文件列表。