我收到了这个错误:
“find:paths必须在表达式之前
用法:找[-H] [-L] [-P] [路径...] [表达式]“
对于我生成的代码:
for subdir in `find ./$file/ -name "*.$@"`
do
new_ext=`echo $subdir | sed "s/\(.*\.\)$/\1$new/"`
mv $subfile $new_ext
done
我正在尝试使用上面的代码重命名当前和子目录中的文件扩展名,而不必输入旧的文件扩展名。
任何帮助指出我做错了什么都会感激不尽。
答案 0 :(得分:2)
这是我的尝试:
for old_extension in "$@"
do
find ./$file -name "*.$old_extension" | while read old_file
do
new_file=${old_file%$old_extension}new
echo mv "$old_file" "$new_file"
done
done
答案 1 :(得分:1)
"*.$@"
肯定不会做你想要的。构建命令in an array。