You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MATLAB中使用UNIX命令将生成的文件夹插入full_data.tar?

在MATLAB中用UNIX命令打包文件夹到指定tar包

嗨,这个需求其实很容易实现,MATLAB的system函数可以直接调用UNIX系统命令,结合tar工具就能完成。我分两种场景给你详细说明:

场景1:创建新的full_data.tar并添加目标文件夹

如果指定路径下还没有full_data.tar文件,直接用创建模式打包即可:

% 替换成你的实际指定路径(比如'/home/user/results/')
target_tar_path = '/path/to/your/target/dir/';
% 要打包的文件夹列表,可根据实际情况增减
folders_to_pack = {'data_1', 'data_2', 'data_3'};

% 把文件夹列表拼接成UNIX命令能识别的字符串
folder_list_str = strjoin(folders_to_pack, ' ');

% 构造tar命令:-c表示创建新包,-f指定包文件名
tar_command = sprintf('tar -cf %sfull_data.tar %s', target_tar_path, folder_list_str);

% 调用UNIX命令并获取执行状态
[execution_status, command_output] = system(tar_command);

% 检查执行结果
if execution_status == 0
    disp('文件夹已成功打包到full_data.tar!');
else
    fprintf('打包失败,错误信息:\n%s\n', command_output);
end

场景2:往已存在的full_data.tar里追加文件夹

如果full_data.tar已经存在,需要用追加模式把新文件夹加进去,只需要把tar命令的参数换成-r即可:

target_tar_path = '/path/to/your/target/dir/';
folders_to_pack = {'data_1', 'data_2', 'data_3'};
folder_list_str = strjoin(folders_to_pack, ' ');

% 用-r参数追加内容到已有tar包
tar_command = sprintf('tar -rf %sfull_data.tar %s', target_tar_path, folder_list_str);

[execution_status, command_output] = system(tar_command);

if execution_status == 0
    disp('文件夹已成功追加到full_data.tar!');
else
    fprintf('追加失败,错误信息:\n%s\n', command_output);
end

几个注意事项

  • 如果你的文件夹不在MATLAB当前工作目录下,记得在folders_to_pack里写完整路径,比如{'/home/user/data/data_1', '/home/user/data/data_2'}。
  • 如果指定路径或文件夹名包含空格,一定要用双引号把路径括起来,比如:
    tar_command = sprintf('tar -cf "%sfull_data.tar" %s', target_tar_path, folder_list_str);
    
  • 可以用tar -tf命令验证tar包内容,比如:
    system(sprintf('tar -tf %sfull_data.tar', target_tar_path));
    

内容的提问来源于stack exchange,提问作者manoos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:53:20