NBash

Форк
0
55 строк · 1.3 Кб
1
#!/bin/bash
2

3
prettybc="./L14-prettybc"
4

5
# Функция преобразования размеров файлов
6

7
readablesize()
8
{
9
	if [ $1 -ge 1048576 ] ; then
10
		echo "$($prettybc -p 2 $1 / 1048576)Gb"
11
	elif [ $1 -ge 1024 ] ; then
12
		echo "$($prettybc -p 2 $1 / 1024)Mb"
13
	else
14
		echo "${1}Kb"
15
	fi
16
}
17

18
# Основной сценарий
19

20
if [ $# -gt 1 ] ; then
21
	echo "Использование: $0 [dirname]" >&2
22
	exit 1
23
elif [ $# -eq 1 ] ; then
24
	# Альтерантивный короткий вариант от @balaamster
25
	# { [ -d "$1" ] && cd $1; } || \
26
	# echo "Ошибка: Заданный каталог не сущестует" >&2; exit 1
27
	cd "$@" 2> /dev/null
28
	if [ $? -ne 0 ] ; then
29
		echo "Ошибка: Заданный каталог не сущестует" >&2
30
		exit 1
31
	fi
32
fi
33

34
for file in *
35
do
36
	if [ -d "$file" ] ; then
37
		size=$(ls "$file" | wc -l | sed 's/[^[:digit:]]//g')
38
		if [ $size -eq 1 ] ; then
39
			echo "$file ($size файл)|"
40
		elif [ $size -gt 1 ] && [ $size -lt 5 ] ; then
41
			echo "$file ($size файла)|"
42
		else
43
			echo "$file ($size файлов)|"
44
		fi
45
	else
46
		size="$(ls -sk "$file" | awk '{print $1}')"
47
		echo "$file ($(readablesize $size))|"
48
	fi
49
done | \
50
	sed 's/ /^^^^^/g' | \
51
	xargs -n 2 | \
52
	sed 's/\^\^\^\^\^/ /g' | \
53
	awk -F\| '{ printf "%-39s %-39s\n", $1, $2 }'
54

55
exit 0
56

57

58

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.