Linux uuencode命令用于将二进制文件编码为可打印的ASCII文本格式,以便在电子邮件或其他文本传输中传输。它将二进制文件转换为64位编码,并在头部添加一个起始行和终止行。接收者可以使用uudecode命令将编码的文件还原为原始的二进制格式。这是一种常用的文件传输方式,因为它可以在不受到二进制数据损坏的情况下传输文件,并在不同的系统之间保持兼容性。
命令名称
uuencode
命令功能
将二进制文件编码为可打印的 ASCII 格式,用于在网络上传输或存储
命令全称
Unix-to-Unix Encoding
命令语法
uuencode [输入文件名] [输出文件名]
uuencode [input_file] [output_file] #[English]
命令参数
-a #以Base64的格式编码输出
-m #以uuencode的方式编码输出
-o file #将输出重定向到指定文件
-v #输出调试信息
命令原理
Linux uuencode命令可以将二进制文件编码为可打印的ASCII码格式,使其可以通过文本方式进行传输。它将每3个8位字节转换成4个6位字符,添加起始和结束标记。接收方可使用uudecode命令将其解码还原为原始二进制文件。
用法举例
#将文件file1编码为uuencode格式并输出到file1_encoded文件中
uuencode file1 file1_encoded
#将文件file1编码为base64格式并输出到file1_encoded文件中
uuencode -m file1 file1_encoded
#将目录dir打包为tar格式,并将其编码为uuencode格式输出到标准输出
tar cf - dir/ | uuencode dir.tar
#将文件file1编码为uuencode格式并输出到file1_encoded文件中(与命令1不同的是输出文件在后)
uuencode -o file1_encoded file1
#将文件file1编码为uuencode格式并通过电子邮件发送给recipient@domain.com
uuencode -p file1 file1_encoded | mail -s "email subject" recipient@domain.com
#从网站example.com下载文件file并将其编码为uuencode格式输出到标准输出
wget -O - http://example.com/file | uuencode file -
#将目录dir打包为tar.gz格式,并将其编码为uuencode格式输出到标准输出
tar cf - dir/ | gzip | uuencode dir.tar.gz
#将文件file1_encoded编码为base64格式后插入到文件header.txt中,并将终结果输出到message.txt文件中
uuencode -m - file1_encoded < header.txt > message.txt
#将文件file1编码为base64格式并通过管道传递给uudecode命令进行解码,并将解码结果输出到decoded_file文件中
cat file1 | uuencode -m - | uudecode -o decoded_file
#将文件file1编码为base64格式后通过ssh传输给远程主机,并在远程主机上执行uudecode命令进行解码,并将解码结果输出到decoded_file文件中
uuencode -m - file1 | ssh user@remote_host "uudecode -o decoded_file"
执行权限
所有用户
系统路径
/usr/bin/uuencode
注意事项
输出文件名包含了编码后的数据及 shell 解码脚本,需要手动删除解码脚本
系统自带
是
常用命令
否
命令分类
文件格式转换
参数详解
-a
使用Base64编码,使输出内容更为可读
#将file1.txt编码为Base64格式,并输出到file2.txt中
uuencode -a file1.txt file2.txt
-m
使用标准Base64编码,使输出内容更加可移植
#将file1.txt编码为标准Base64格式,并输出到file2.txt中
uuencode -m file1.txt file2.txt
#将文件file.txt使用base64编码输出到encoded.txt文件中
uuencode -m file.txt encoded.txt
#将文件example.txt使用Base64编码方式编码后输出到example_uu.txt文件中。
uuencode -m example.txt example_uu.txt
-o file2.txt
将编码后的内容输出到指定的文件中
#将file1.txt编码为Base64格式,并输出到file2.txt中
uuencode -o file2.txt file1.txt
-z
使用Unix压缩格式(gzip)进行编码
#将file1.txt经过压缩后,再进行Base64编码,并输出到file2.txt中
uuencode -z file1.txt file2.txt
-m -o file2.txt
使用标准Base64编码,并将编码后的内容输出到指定的文件中
#将file1.txt编码为标准Base64格式,并输出到file2.txt中,使输出内容更加可移植
uuencode -m -o file2.txt file1.txt
--version
显示uuencode的版本信息
#显示当前uuencode的版本信息
uuencode --version
-o
指定输出文件名
#将文件file.txt编码后输出到指定输出文件encoded.txt中
uuencode file.txt -o encoded.txt
#将file.txt文件编码为uuencode格式,并输出到encoded.txt文件中。
uuencode -o encoded.txt file.txt
-p
将编码输出到标准输出
#将文件file.txt编码后输出到标准输出中
uuencode -p file.txt
#将file.txt文件编码为uuencode格式,但不添加行号标记,并输出到encoded.txt文件中。
uuencode -p file.txt encoded.txt
#将文件example.jpg使用可打印字符集编码方式编码后输出到example_uu.txt文件中。
uuencode -p example.jpg example_uu.txt
-v
显示处理过程信息
#将文件file.txt编码输出到encoded.txt文件中,并显示处理过程信息。
uuencode -v file.txt encoded.txt
-t
在编码结果中添加文件类型信息
#将file.jpg文件编码为uuencode格式,并在编码结果中添加文件类型信息,并输出到encoded.txt文件中。
uuencode -t file.jpg encoded.txt
-o 文件名
将编码输出到指定文件中。
#将文件example.jpg编码后输出到example_uu.txt文件中。
uuencode -o example_uu.txt example.jpg
-m -o 文件名
使用Base64编码方式将数据输出到指定文件中。
#将文件example.jpg使用Base64编码方式编码后输出到example_uu.txt文件中。
uuencode -m -o example_uu.txt example.jpg
-r 文件名
使用指定的编码方式将数据输出到指定文件中。
#使用默认的编码方式将文件example.jpg编码后输出到example_uu.txt文件中。
uuencode -r example.jpg example_uu.txt
命令报错原因
* 没有安装uuencode命令;
* 文件不存在或者文件路径错误;
* 文件格式不支持;
* 权限不足无法执行uuencode命令;
* 文件名包含字符导致解码失败;