Bash 直接将命令行程序的文件输出移动到文件夹中
我正在运行一个命令行程序(macOS),它向命令行输出一条成功消息,并创建一些包含程序结果的文件 由于我使用不同的参数多次运行此程序,我希望按参数将结果分组到文件夹中。理想情况下,如果我运行Bash 直接将命令行程序的文件输出移动到文件夹中,bash,macos,terminal,Bash,Macos,Terminal,我正在运行一个命令行程序(macOS),它向命令行输出一条成功消息,并创建一些包含程序结果的文件 由于我使用不同的参数多次运行此程序,我希望按参数将结果分组到文件夹中。理想情况下,如果我运行PROGRAM[param_1=1][param_2=2],然后运行PROGRAM[param_1=1][param_2=3],我会得到: param_1_1 param_2_2 OUTPUT_FILES param_2_3 OUTPUT_FILES 我试过:
PROGRAM[param_1=1][param_2=2]
,然后运行PROGRAM[param_1=1][param_2=3]
,我会得到:
param_1_1
param_2_2
OUTPUT_FILES
param_2_3
OUTPUT_FILES
我试过:
首先使用mkdir-p
创建一个文件夹output
,然后执行PROGRAM[param_1=1][param_2=2]>output
,但这会将成功消息放在名为output
的文本文件中,并且不会将输出文件移动到任何位置
我也曾想过运行我的程序,然后使用包含
mv
的bash脚本,通过按文件名分类将文件移动到文件夹中,但文件名多种多样,虽然可能,但如果可以的话,我希望跳过这一步 之所以发生这种情况,是因为
只向右侧的文件名发送标准输出
您可以更改程序本身(例如,它打开文件指针的方式),但如果不可行:
- 如果所有文件都是在与程序运行位置相关的路径中创建的,则在运行之前将
放入不同的目录中,因此cd
步骤更简单mv
- 如果它们输出到没有其他文件的路径,您可以使用
将该路径设置为符号链接,其中实际路径是输出目录ln