Как обмениваться папками, находящимися в разделе на дополнительном жестком диске?

Будьте осторожны: du не печатает размер файла, он дает вам оценку использования файлового пространства.

Вы можете создать файл размером 10 МБ, который использует гораздо меньше:

dd if=/dev/zero of=file seek=10M count=1 bs=1
stat -c %s file
ls -lh file
du -h file
cat file | wc

Примером является сжатый файл, который использует меньше места на диске, чем его размер, как пример выше разреженного файла.

В приведенном выше примере find . -type f -size +5M будет выводиться file, даже если du намного меньше 5M.

Если вы знаете, что у вас нет новых строк в ваших именах файлов, вы можете отфильтровать вывод find с помощью:

find . -type f -size +5M | while IFS= read -r file; do
  du=$(du -k "$file")
  size="${du%%$(printf "\t")*}"
  if test $size -gt $((5 * 1024)); then
    echo "$file"
  fi
done
]

Если вы можете иметь новые строки в своих именах файлов, вы можете использовать это расширение GNU, но затем использовать в цикле что-то еще, чем echo:

find . -type f -size +5M -print0 | while IFS= read -r -d '' file; do
  du=$(du -k "$file")
  size="${du%%$(printf "\t")*}"
  if test $size -gt $((5 * 1024)); then
    echo "$file"
  fi
done
1
задан 30 March 2014 в 00:31

0 ответов

Другие вопросы по тегам:

Похожие вопросы: