我只想将文件名重命名为BASE64,而不是扩展名。因此,我创建了无法运行的脚本。任何人都可以告诉它的问题吗?
#!/bin/bash
#initialize with random text
onlyfilename="abc"
extension="def"
#go through all files in the directory
for filename in ./*;
do
#avoid my script files (enc & dec)
if [ $filename != "./enc" ] && [ $filename != "./dec" ]; then
#remove ./ from beginning and get just filename
$onlyfilename=$(basename ${filename:2})
#get extension
$extension=${onlyfilename##*.}
#check if they are correct
echo $onlyfilename
echo $extension
#rename filename to base64
mv "$filename" "$(echo -n $onlyfilename | base64).$extension"
fi
done
目的:我想将文件重命名为它们的Base64并下载它们。Base64文件名将是要下载的有效文件名吗?如果没有,Base64是否有替代方案?
我从这篇文章中得到了帮助。
编码:
#!/bin/bash
#ENCODE
for file in *;
do
if [ $file != "enc" ] && [ $file != "dec" ]; then
new_name=$(echo -n "${file%.*}" | base64 -w0)
mv "$file" "$new_name.${file##*.}"
fi
done
解码:
#!/bin/bash
#DECODE
for file in *;
do
if [ $file != "enc" ] && [ $file != "dec" ]; then
new_name=$(echo -n "${file%.*}" | base64 -w0 --decode)
mv "$file" "$new_name.${file##*.}"
fi
done
我都测试了;他们工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句