du
суммирует каталог использования диска каталогом. В Вашем примере, так как текущий каталог не имеет никакого подкаталога, вывод является одной строкой.
При передаче названия файла на командной строке о ее размере сообщают. При передаче названий нескольких файлов это - эквивалентный ¹ к выполнению du
многократно; следовательно du .*
эквивалентно du .; du ..; du .hidden
.
Выполненный du -a
видеть место, занятое каждым файлом.
$ du -a
4 .hidden
4 testfile
12 .
¹ Почти: в некоторых системах, если регулярный файл имеет несколько жестких ссылок, то он только рассчитал в первый раз, он достигнут в детали du
вызов.
Попробуйте это:
for file in *.gz; do
gunzip -c "$file" > "${file/.DAT*/.DAT}"
done
Использование подхода gunzip
опция произвести несжатый поток к стандартному выводу (-c
), таким образом, мы можем перенаправить его в другой файл без второго вызова переименования. Переименование сделано на самой переменной имени файла, с помощью bash
замена (соответствуют любому globbing шаблону .DAT*
и замените его .DAT
). Сам цикл просто выполняет итерации по файлам в текущем каталоге с именами, заканчивающимися .gz
.