各ファイル名からいくつかの文字列を削除する方法

各ファイル名からいくつかの文字列を削除する方法

[root@localhost ~]# ls *.bak

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

.bakすべてのファイルのすべての内容を削除する方法は?これが私の現在の試みです

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

しかし、これは私には効果がありません。ここに回避策はありますか?

ベストアンサー1

ループは次のことを行う必要があります(POSIXに似たシェルで):

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

一行:

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

おすすめ記事