Да. Именно сортировка т.е. : принимаются от пользователя границы размера, в текущем каталоге создаётся каталог с именем "'наименьший размер'-'максимальный размер'" и туда копируются все файлы из текущего каталога попадающие в интервал размеров.
Не ы мозгах дела или желании думать. Я прогаю на с++ и суть проблемы знаю просто не знаком с синтаксисом шела.
Так не катит, cp тебя обматерит при первом же файле с пробелом или ещё каким знаком в имени. xargs для того и придумали. Осиль Advanced Scripting Guide, жизнь в линупсах станет значительно веселей.
Блин! Мне кто-нибудь может конец этой строки дописать? Мне не нужно вдаваться в такие подробности. Мне данная прога для зачёта автоматом нужна. Мне потом с шелом дружить тока через год нужно будет.
>Блин! Мне кто-нибудь может конец этой строки дописать? Мне не нужно вдаваться в такие подробности. Мне данная прога для зачёта автоматом нужна. Мне потом с шелом дружить тока через год нужно будет. >Мне данная прога для зачёта автоматом нужна.
Одна из особенностей баша в том, что задачу можно совершенно по разному выполнить и skill сразу видно. Не вали себя сам - не можешь в строчку, напиши в цикл, видно будет что сам написал.
LIST=`/usr/bin/find -size +меньшее_значение -size -большее_значение -print`
for file in $LIST; do
if [ -d куда_нужно_переместить ]; then :
else
/bin/mkdir куда_нужно_переместить
fi
/bin/mv $file куда_нужно_переместить/
done
удачного зачета ;)
-size n[cwbkMG]
File uses n units of space. The following suffixes can be used:
`b' for 512-byte blocks (this is the default if no suffix is
used)
`c' for bytes
`w' for two-byte words
`k' for Kilobytes (units of 1024 bytes)
`M' for Megabytes (units of 1048576 bytes)
`G' for Gigabytes (units of 1073741824 bytes)
The size does not count indirect blocks, but it does count
blocks in sparse files that are not actually allocated. Bear in
mind that the `%k' and `%b' format specifiers of -printf handle
sparse files differently. The `b' suffix always denotes
512-byte blocks and never 1 Kilobyte blocks, which is different
to the behaviour of -ls.
В общем случае (произвольных имён файлов) использовать find + цикл for недопустимо. Там нет способов обеспечения корректной работы с файлами имена которых содержат пробелы. Следует использовать find ... -print0 | xargs -0 ... либо find ... -exec ...
Ну и вот тут /bin/mv $file тоже никак не обрабатывается возможные пробелы в имени.