Aas*_*Raj 1 find xargs filenames mv
我有一些文件名包含多个扩展名:
$ ls -r
File1_345.R.12345
File1_3.234.R.6789
File1_2345.R.2345
File1_12345.R.12345
$
Run Code Online (Sandbox Code Playgroud)
我想重命名它们以删除所有现有的扩展名并将它们替换为.txt
. 输出应如下:
$ ls -r
File1_345.txt
File1_3.txt
File1_2345.txt
File1_12345.txt
Run Code Online (Sandbox Code Playgroud)
是否可以使用 find 和 xargs 命令?
如果要从每个文件名中删除所有扩展名(第一个点之后的所有内容),请执行
$ for f in *
do
mv -- "$f" "${f%%.*}.txt"
done
Run Code Online (Sandbox Code Playgroud)
当然,如果你真的想在一行中做到这一点,只需将上面的折叠起来即可
$ for f in *; do mv -- "$f" "${f%%.*}.txt"; done
Run Code Online (Sandbox Code Playgroud)