2016-10-28 2 views

ответ

2

Список файлов с помощью -l и затем извлекать их один за другим с использованием опции -p:

unzip -l -q -q temp.zip | awk '{print $NF}' | while read file 
do 
    unzip -p temp.zip "${file}" > "${file%.*}.$(date +%s).${file##*.}" 
done 

где

  • -q -q опция просит немой выход (в простых в синтаксическом анализ столбцов);
  • указывает на последний столбец;
  • ${file%.*} удаляет кратчайшее совпадение .* с обратной стороны файла;
  • ${file##*.} удаляет наибольшее совпадение *. с фронтальной стороны имени файла;
  • $(date +%s) выходы в секундах с 1970-01-01 00:00:00 UTC
+0

большое спасибо !!! – ConorHolt

0

вы можете попробовать что-то вроде этого;

#!/bin/bash 
unzip temp.zip 
for n in $(unzip -Z -1 "temp.zip"); do 
    e=${n#*.} 
    fn="${n%.*}" 
    DATE=`date +%s` 
    newFileName="$filename.$DATE.$e" 
    mv "$n" "$newFileName" 
done 
+0

большое спасибо! – ConorHolt

Смежные вопросы