Beri bash i ebash / Говнокод #5387 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
#!/bin/bash

ys="y"
ss=0
for fl in `find $1`
do
echo -n "Do you want archive file $fl?(y/n)"
read ck
if [ "$ck"=="$ys" ]; then
tar -cf $fl.tar $fl
ls -la $fl
ls -la $fl.tar
os=`ls -la $fl | gawk '{ print $5 }'`
ts=`ls -la $fl.tar | gawk '{ print $5 }'`
let "ds=ts-os"
let "ss=ss+ds"
echo "ss $ss ds  $ds"
fi

done

Архивирует рекурсивно все файлы и расчитывает разницу между архивом и оригиналом.

Запостил: AliceGoth AliceGoth, (Updated )

Комментарии (4) RSS

  • у нас подобный скрипт бегал много лет назад.

    все слетело весьма спектакулярно, когда юзвери (по ошибке, не преднамерено) в имени файла на конце `*` поствили.
    Ответить
  • А почему без сжатия?

    И вообще, что за бред? Оно архивирует и директории и файлы, судя по тому, как "find" вызывается. Тогда зачем смотреть размер директории с помощью "ls"? (хотя и без этого использовать "ls" немного убого в таких целях). А если архивируется одинокий файл, то собственно зачем его архивировать в tar, да ещё и без сжатия?
    Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8