提取7z档案时记录

时间:2016-04-28 01:59:42

标签: bash unix

我想创建一个日志文件,而我的脚本提取7z

我正在使用以下内容:

7z x "*.7z" >> logfile.log 2>&1

但终端停止显示输出,日志文件为空白......

2 个答案:

答案 0 :(得分:0)

double initArray(int data[], int dimensionCount){ //data: element 0= number of dimensions //element 1 through inf define the size of each dimension //dimensionCount keeps track of the current dimension being manipulated by the function //Allocate dynamic memory for the current dimension double* output; output=new double[data[dimensionCount]]; int i=dimensionCount; while(i<data[dimensionCount]){ if( !(output[i]= initArray(data, dimensionCount++))){ std::cout<< "Error! Out of Memory!"; break; } i++; } //returning the generated array tacks on the generated dimension to the lower dimension preceding it double array=*output; return array; } 程序可能检测到它的stdout不是终端(TTY),并且在这种情况下选择不那么冗长。

不幸的是,7z文档似乎并没有提供详细的&#34;&#34;像许多程序一样的旗帜。因此,我不确定您是否可以轻松打开输出。

但你可以欺骗程序认为它在stdout上有一个终端!例如:

7z

有关更多提示,请参阅:Bash: trick program into thinking stdout is an interactive terminal

答案 1 :(得分:0)

您将STDERR重定向到STDOUT(即script logfile.log 7z x "*.7z" )并将STDERR重定向到日志文件。试试2>&1。希望有所帮助:

  

%7z c /tmp/TailsBSDPLIST.7z~ / TailsBSD&gt; /tmp/logfile.log
  %cat /tmp/logfile.log
  7-Zip(a)9.38 beta版权所有(c)1999-2014 Igor Pavlov 2015-01-03   p7zip版本9.38.1(locale = C,Utf16 = off,HugeFiles = on,1 CPU)

     

命令行错误:   不支持的命令:   ç