Ваш пример кода мог бы получить Вас вещи как file1.2011-10-07.2011-10-08.tar.gz
и я сомневаюсь, что это - то, что Вы хотите.
Кроме того, rename
не стандартная команда, таким образом, она действительно зависит от того, что Ваш делает.
Так как Вы говорите, что существует только когда-либо постоянное число файлов с фиксированными именами, Вы могли, вероятно, использовать простой сценарий как:
cdate=$(date +%Y-%m-%d)
for file in file1.tar.gz file2.tar.gz; do
mv "$file" "$cdate"_"$file"
done
Это может быть полезно:
$ zip all.zip *.xml ## create a big archive.
Найдите общий размер архива:
$ ls -lh all.zip
Теперь, разделите крупный архив на небольшие архивы, поскольку Вам нужно:
$ split -b 5M all.zip ## creates 5 MB zips
Примечание: извлечение архивов не работает, если Вы не присоединяетесь к ним назад:
cat x* > oldbigzip.
Я сделал бы это как это:
# Create file list
find . -type f -name '*.xml' > filelist
n=10000
fileno=1
# Loop through list, extracting n names each time
for i in $(seq 1 $n $(wc -l < filelist)); do
zipfile="zipfile$(printf "%04d" $((fileno++)))"
sed -n "$i,$((i+n-1))p" filelist | zip $zipfile -@
done