Filenames

如何在每個文件名中刪除一些字元串

  • June 25, 2017

[root@localhost ~]# ls *.bak

test2.bak test3.bak test9.bak test.bak test.txt.bak

如何刪除所有.bak文件?這是我目前的嘗試

ls *.bak|xargs -t -i mv {}.bak {}

但這對我不起作用。這裡有什麼解決方法嗎?

使用**rename**命令:

rename 's/\.bak$//' *.bak

  • 's/\.bak$//'- perl表達式以匹配所有以結尾的文件名.bak並去除副檔名

一個循環應該做(在類似 POSIX 的 shell 中):

for f in *.bak; do 
   mv -- "$f" "${f%.*}"
done

作為一行:

for f in *.bak; do mv -- "$f" "${f%.*}"; done

引用自:https://unix.stackexchange.com/questions/372972