Если у Вас нет инструментов GNU или если бы Ваши имена файлов содержат много специальных символов, я использовал бы одно из отличных решений Gilles.
Однако вот одно решение с помощью GNU find
, sort
, cut
и awk
- в основном набор инструментов, что предложенный alex:
$ find -iname "*.png" -exec ls -s {} + | sort -n | cut -d" " --complement -f1 | awk '{ if ( NR % 50 == 0 ) print}' | xargs -d"\n" eog
Здесь я использовал глаз гнома (eog
) как программа просмотра изображений, главным образом потому что это был один из некоторых, я мог найти, что берут несколько параметров командной строки, и делает что-то разумное с ним.
Я уверен, что мог удалить sort
и cut
в пользу еще некоторых awk
код. Чтобы быть абсолютно честным, я не уверен, как это решение будет взаимодействовать с пробелом.
Можно создать редкий файл в определенных файловых системах, которые, будет казаться, будут определенным размером, но на самом деле не используют так много пространства на диске.
$ dd if=/dev/null of=sparse bs=1024 count=1 seek=524288000
0+0 records in
0+0 records out
0 bytes (0 B) copied, 2.4444e-05 s, 0.0 kB/s
$ ls -l sparse
-rw-rw-r--. 1 ignacio ignacio 536870912000 May 9 22:25 sparse
$ du -h sparse
0 sparse
Вне базирующегося решения портативного dd/seek уже упомянул, что некоторые Unixes специализировали команды:
По крайней мере, на Солярисе, MacOS/X и Irix:
mkfile -n 500m sparseFile
На предварительном выделении HP-UX на AIX lmktemp. и многих дистрибутивах Linux имеют усеченный
Если Вы не должны искать назад в файле, Вы могли бы использовать именованный канал:
mkfifo my_special_file
yes | head -n 100 > my_special_file&
cat my_special_file
Конечно, можно использовать любую другую команду, включая сложный сценарий, для генерации данных в канале.
Ну, с dd можно указать blocksize и количество, и таким образом ограничить размер как это:
dd if=/dev/urandom count=5 bs=1024 > nullfile
Если Вы хотите читать из него, просто передайте его по каналу:
dd if=/dev/urandom count=5 bs=1024 | yourReadingProcess
В старину каждая установка Linux, которую я сделал, шла с некоторыми сетевыми инструментами, portmap, inet.d и таким, и в inet.d, там где некоторые сервисы, всегда указанные, один из них был описан/назван chargen, если я помню правильно.
(... одну минуту спустя...)
Да. В/etc/services Вы находите
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
Таким образом, я предполагаю, что это - сервис для тестирования чего-то, и который отправляет символы - возможно, случайный - по сети. Я только нахожу/etc/xinet.d/chargen на своем ПК. Существует больше infos:
# default: off
# description: An xinetd internal service which generate characters. The
# xinetd internal service which continuously generates characters until the
# connection is dropped. The characters look something like this:
# !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
# This is the tcp version.
Однако я не знаю, как использовать его для Вашей цели.