как я могу перечислить файлы в порядке

Больше использования POSIX Manpages

Кроме того, что Оли сказал о написании переносимых скриптов (и взлома на coreutils), есть еще две ситуации, когда страницы руководства POSIX могут оказаться полезными:

1. Вы настроили (более) поведение, совместимое с POSIX.

Если вы установили переменную среды POSIXLY_CORRECT (во что угодно, она может быть даже пустой), многие утилиты GNU и некоторые другие программы будут вести себя в мода, указанная POSIX, даже когда разработчики не видели причин, по которым пользователи, скорее всего, захотят этого поведения.

Это не приводит к тому, что ваша система ведет себя как настоящая ОС, совместимая с POSIX. Ядро Linux, GNU libc и многие инструменты userlands все специально разработаны для совместимости с POSIX, только когда это более полезно, чем вредно. Это одна из причин того, что системы GNU / Linux, такие как Ubuntu, широко считаются не системами Unix.

На поведение ls влияет хакинг , но это [d7 ], только когда это делает более полезным, чем вредоносное , зависит от того, установлен или нет POSIXLY_CORRECT. (Вы можете проверить это, проверив исходный код, например, 13.04: ls-ls.c, coreutils и ls.c не ссылаются на эту переменную среды.)

Но некоторые другие утилит затронуты. Например, утилита df печатает информацию об использовании диска для всех смонтированных устройств. Обычно Ubuntu df (разделенный GNU coreutils) показывает это в 1 килобайтах. С установленным POSIXLY_CORRECT, он показывает его в блоках 512 B (т.е. полукилограмм). Это поведение требуется по стандарту POSIX, но ls-ls.c , поэтому оно не является значением по умолчанию.

ek@Kip:~$ df
Filesystem      1K-blocks       Used Available Use% Mounted on
/dev/sda8        15481840   11816640   2878768  81% /
udev              1020748         12   1020736   1% /dev
tmpfs              412840       5156    407684   2% /run
none                 5120          0      5120   0% /run/lock
none              1032100        240   1031860   1% /run/shm
none               102400         32    102368   1% /run/user
/dev/sda6          245679     159043     73529  69% /boot
/dev/sda9        31458256   10024972  19835284  34% /home
/dev/sdd1      1922859824 1687175656 138008496  93% /media/ek/Noether
/dev/sdc1      1922859824 1700447368 124736784  94% /media/ek/Baker
/dev/sdb1      1922859824 1782944724  42239428  98% /media/ek/Spinoza

ek@Kip:~$ POSIXLY_CORRECT= df
Filesystem     512B-blocks       Used Available Use% Mounted on
/dev/sda8         30963680   23573440   5817376  81% /
udev               2041496         24   2041472   1% /dev
tmpfs               825680      10312    815368   2% /run
none                 10240          0     10240   0% /run/lock
none               2064200        480   2063720   1% /run/shm
none                204800         64    204736   1% /run/user
/dev/sda6           491358     318086    147058  69% /boot
/dev/sda9         62916512   20049944  39670568  34% /home
/dev/sdd1       3845719648 3374351312 276016992  93% /media/ek/Noether
/dev/sdc1       3845719648 3400894736 249473568  94% /media/ek/Baker
/dev/sdb1       3845719648 3565889448  84478856  98% /media/ek/Spinoza

2. Нет никакой «обычной» man-страницы для интересующей вас команды / темы.

Иногда страница руководства POSIX является единственной доступной. Например, команда cd является встроенной оболочкой. Он предоставляется разными оболочками и немного отличается от оболочки к оболочке (в этом случае разные оболочки иногда делают cd принимающими разные ls.c ).

Интерактивная оболочка по умолчанию в Ubuntu есть bash, и вы можете получить информацию о cd в shell builtin . Но если вы хотите использовать справочную страницу только для cd, то нет исполняемого файла cd (нет единой универсальной, не зависящей от оболочки команды cd).

Но команда cd обязательная часть стандарта POSIX - оболочки должны реализовать его, а стандарт POSIX «знает» о том, что он требует. Таким образом, man-страница POSIX для cd возможна и существует.

Поиск cd на возможен для man-страницы POSIX для cd. показывает POSIX страницу руководства и две другие. Это, кстати, еще один пример нескольких страниц с одним и тем же именем. Что другие? Один из них - это cd команда может . Другой - это драйвер CD-ROM в операционной системе FreeBSD. Ручные страницы для FreeBSD иногда полезны для пользователей Ubuntu, поэтому их можно установить из целой коллекции, в том числе man 4 cd (ни одна из страниц руководства FreeBSD, скорее всего, не будет полезной для пользователей Ubuntu, также не использующих FreeBSD). [!d25 ]

Зачем планировать 9?

Возможно, вам интересно, почему показывает страницу руководства POSIX и две другие страницы руководства в Ubuntu. В конце концов, в отличие от Ubuntu (и многих других ОС, таких как FreeBSD), Plan 9 даже не является операционной системой в стиле Unix, хотя, как говорит Оли, есть некоторые общие черты.

Причина в том, что Инструменты 9 пользовательского интерфейса Plan 9 (базовый набор инструментов, соответствующих очень грубоватым) были перенесены в Unix-подобные системы, поэтому их можно запускать на таких ОС, как Ubuntu.

Некоторые (не все) инструменты Plan 9, доступные для Ubuntu, имеют то же имя, что и инструменты Ubuntu , и выполнять те же или подобные функции.

Одна из причин наличия инструментов Plan 9 в Ubuntu заключается в том, что некоторые из них не соответствуют непосредственно любому инструменту Ubuntu (но могут все еще нуждаться в инструментах, которые do, для интероперабельности).

Еще одна причина заключается в поддержке программного обеспечения, которое зависит от инструментов Plan 9. Например, диспетчер окон wmii был упакован для Ubuntu (и доступен в официальных источниках программного обеспечения Ubuntu); этот Один пакет зависел от 9base.

1
задан 30 July 2015 в 05:33

3 ответа

perl также может использовать синтаксис расширения в циклах:

perl -e 'print "SomeFile$_.dcd " for 1..100' > foo.txt
2
ответ дан 23 May 2018 в 18:39

с использованием find и sort

find . -maxdepth 1 -type f -name "*.dcd" | sort -V
1
ответ дан 23 May 2018 в 18:39
  • 1
    sort -V - умный выбор, а также +1 для использования существующих файлов. – Sylvain Pineau 30 July 2015 в 13:23

Шаблоны Globbing будут расширяться до упорядоченного списка файлов (и каталогов), соответствующих шаблону globbing;

Если у вас есть только те файлы в вашем текущем рабочем каталоге, просто:

cat * > out

Или если нет других файлов / каталогов, которые начинаются с «SomeFile»:

cat SomeFile* > out

Или, если нет других файлов / каталогов, которые заканчиваются на «.dcd»:

cat *.dcd > out

Кроме того, в zsh вы можете включать только обычные файлы с использованием шаблона globing *(.):

cat *(.) > out
cat SomeFile*(.) > out
cat *(.).dcd > out
0
ответ дан 23 May 2018 в 18:39

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

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