如何将目录中的每个文件压缩为自己的压缩文件(不在当前目录中的文件)

如何将目录中的每个文件压缩为自己的压缩文件(不在当前目录中的文件)

如果位置DATA/AAA/INPUT包含n文件(文件名是随机作业名称),我需要为所有文件创建 tar 文件nDATA/AAA/OUTPUT具有通用名称格式的位置中的文件。

那么,如果有n文件INPUT,然后OUTPUT位置应该有ntar 文件格式:

log1.tar, log2.tar, ... , logn.tar

FILE_NAME_PREFIX=今天的 EDWETLLogs= date '+%d_%m_%Y'; count= ls -lrt /DEVL3/EW/EWD1/DATA/AED/INPUT | wc -l i=1 while [[ $i -le $count ]] 执行 if [ $i -le 9 ];then

    tar czvf /DEVL3/EW/EWD1/DATA/AED/OUTPUT/${FILE_NAME_PREFIX}_${today}_0${i}.tar.gz /DEVL3/EW/EWD1/DATA/AED/INPUT        
  else
   
    tar czvf /DEVL3/EW/EWD1/DATA/AED/OUTPUT/${FILE_NAME_PREFIX}_${today}_${i}.tar.gz /DEVL3/EW/EWD1/DATA/AED/INPUT 

    
  fi
 ((i=i+1))

完毕

我尝试了上面的代码,但它产生的输出是将所有文件压缩到一个 tar 文件中

答案1

$ cd /path/to/DATA/AAA/INPUT
$ for file in *; do tar cf ../OUTPUT/"${file}".tar "${file}"; done

相关内容