gpt4 book ai didi

linux - 使用 find 和 exec 命令重命名文件以删除 linux 中多个文件的扩展名

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:35 25 4
gpt4 key购买 nike

我有几个文件需要重命名。我想重命名以删除所有文件的扩展名(没有扩展名的文件)。我更喜欢 Linux 中的“查找和执行”命令,但我对其他解决方案持开放态度。谢谢

 Have
file.txt
file1.txt
file2.txt
file3.

Want
file
file1
file2
file3

最佳答案

你可以重命名命令:

rename 's/\.[a-z]*$//g' file*

如果你想找到目录和子目录中的所有文件,那么你可以使用find命令:

find . -name 'file*' | xargs rename 's/\.[a-z]*$//g'

根据文件的可能名称,您可以在重命名命令中调整正则表达式。


一个 bash 解决方案是:

for fname in *.txt; do
[[ ! -e ${fname} ]] && continue
new=${fname%.*}
mv "$fname" "$new"
done

[[ ! -e ${fname} ]] && continue 以防止存在以.txt 为扩展名的文件时的情况。

关于linux - 使用 find 和 exec 命令重命名文件以删除 linux 中多个文件的扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34030403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com