Отображает ли `sl` текущий каталог?

Для тех, кто вышел из цикла, sl – это простой инструмент командной строки, который предназначен для отключения людей, если они ошибочны. При вызове он печатает паровоз. Например:

  ( ) (@@) ( ) (@) () @@ O @ O @ O (@@@) ( ) (@@@@) ( ) ==== ________ ___________ _D _| |_______/ \__I_I_____===__|_________| |(_)--- | H\________/ | | =|___ ___| _________________ / | | H | | | | ||_| |_|| _| \_____A | | | H |__--------------------| [___] | =| | | ________|___H__/__|_____/[][]~\_______| | -| | |/ | |-----------I_____I [][] [] D |=======|____|________________________|_ __/ =| o |=-O=====O=====O=====O \ ____Y___________|__|__________________________|_ |/-=|___|= || || || |_____/~\___/ |_D__D__D_| |_D__D__D_| \_/ \__/ \__/ \__/ \__/ \_/ \_/ \_/ \_/ \_/ 

Тем не менее, в man-странице для sl , в нем указывается следующая ошибка:

 BUGS It rarely shows contents of current directory. 

Итак, остается вопрос: существуют ли какие-то условия, при которых sl фактически показывает текущий каталог?

  • Как перезагрузить таблицу маршрутизации на Centos без потери сетевого сервиса
  • Настройка FTP-сервера с общим каталогом
  • Какой системный вызов используется для изменения атрибутов файлов в Linux?
  • Карта ТВ-тюнера Hauppauge с Motorola STB и LIRC
  • Крупнейший совместный проект в истории
  • устройство или ресурс pivot_root
  • Как системный вызов umask () маскирует разрешение
  • Как уменьшить активность kjournald
  • 9 Solutions collect form web for “Отображает ли `sl` текущий каталог?”

    Насколько я знаю, единственным условием, при котором sl показывает текущий каталог, является то, что вы ошибочно называете его ls .

    Вот исправление, чтобы исправить эту ошибку 🙂

     diff --git a/sl.cb/sl.c index 2eeceb3..f2213ad 100644 --- a/sl.c +++ b/sl.c @@ -37,6 +37,7 @@ #include <curses.h> #include <signal.h> #include <unistd.h> +#include <stdlib.h> #include "sl.h" int ACCIDENT = 0; @@ -71,6 +72,13 @@ void option(char *str) int main(int argc, char *argv[]) { int x, i; + + srand(time(NULL)); + if(rand() % 100 < 10) + { + /* 10% chance of directory listing :) */ + execv("/bin/ls", argv); + } for (i = 1; i < argc; ++i) { if (*argv[i] == '-') { 
    • Лемма: sl печатает паровоз
    • Лемма: допустимые имена файлов не могут содержать косые черты (хотя могут быть пути )
    • Лемма: паровоз содержит косые черты:

       $ touch ' ( ) (@@) ( ) (@) () @@ O @ O @ O > (@@@) > ( ) > (@@@@) > > ( ) > ==== ________ ___________ > _D _| |_______/ \__I_I_____===__|_________| > |(_)--- | H\________/ | | =|___ ___| _________________ > / | | H | | | | ||_| |_|| _| \_____A > | | | H |__--------------------| [___] | =| | > | ________|___H__/__|_____/[][]~\_______| | -| | > |/ | |-----------I_____I [][] [] D |=======|____|________________________|_ > __/ =| o |=-O=====O=====O=====O \ ____Y___________|__|__________________________|_ > |/-=|___|= || || || |_____/~\___/ |_D__D__D_| |_D__D__D_| > \_/ \__/ \__/ \__/ \__/ \_/ \_/ \_/ \_/ \_/' touch: cannot touch '[...]': No such file or directory 

    Вывод: sl никогда не показывает текущий каталог. QED.

    Вы можете проверить исходный код здесь – https://github.com/mtoyoda/sl , увы, нет других параметров, кроме тех, которые были задокументированы и, к сожалению, ничего, что на самом деле будет печатать имена файлов.

    Таким образом, похоже, что ответ @ sfyn правильный.

    Обратите внимание, что ответ I0b0 является лишь доказательством того, что sl никогда не отобразит все и только текущий список каталогов. Однако есть обстоятельства, при которых sl отображает текущий список каталогов вместе с дополнительной «информацией».

    Например, в пустом каталоге:

     $ touch ' ( ) (@@) ( ) (@) () @@ O @ O @ O' $ touch ' (@@@)' $ touch ' ( )' $ touch ' (@@@@)' $ touch ' ( )' $ sl 

    будет в первых шести строках перечислить содержимое каталога, а на оставшихся 10 линиях будет удобно украсить это объявление изображением поезда (без дыма).

    Я знаю, что Lego Stormtroopr зарегистрировал билет, чтобы критическая проблема могла быть решена. Кто знает, сколько времени потребуется для исправления?

    Таким образом, я предоставил обходной путь, чтобы минимизировать влияние из-за серьезной проблемы. Вы можете создать рабочую оболочку sl , которая выполнила бы sl :

     sl() { ((RANDOM%42)) && command sl || ls; } 

    Теперь вызовы sl будут, спорадически, перечислить содержимое каталога.

    Если вы это сделаете с ls , он распечатает текущий каталог – на самом деле, как только я перестану смеяться над паровозом, я добавил это в свой список псевдонимов.

    Вы всегда можете просмотреть исходный код для себя, и вы не увидите, что он никогда не выполняет фактическую команду ls не отображает каталоги.

    https://github.com/mtoyoda/sl

    На самом деле источник довольно простой. Даже если вы «не кодер», вы все равно сможете понять большую часть этого.

    Я считаю, что «ошибка», которую вы опубликовали выше, действительно просто в шутку (и вызвать дискуссию, подобную этой ошибке)

    Да, sl будет действовать так же, как ls, если вы настроите соответствующий псевдоним в bash или любой другой оболочке, которую используете!

    У меня на самом деле есть несколько псевдонимов для ls, включая

     alias ls='ls -FG' alias ll='ls -lFG' 

    поэтому спасибо за предложение – добавлю

     alias sl='ls -FG' 

    (Не то, чтобы я когда-либо помню, как печатал sl но тогда я склоняюсь к нам или lh !)

    Interesting Posts

    / etc / hosts. Можно ли установить один IP-адрес для зоны?

    Как я могу использовать установленный раздел / диск Arch как физический диск VMWare на виртуальной машине?

    Почему тире расширяется \\\\ по-разному до bash?

    сеанс emacs attach back

    Система Debian не монтирует или не находит / sbin / init во время загрузки

    Получение доступа к терминалу на старом, странном оборудовании

    CVLC: имя alsa?

    отображать пользователей, которые вошли в систему с даты, используя последние

    Кто может изменять разрешения файла / каталога?

    Возможно ли связать файл с выходом командной строки?

    Невозможно использовать bonnie ++ для измерения производительности ввода / вывода

    Удаление каталога из PATH

    Попытки получить аренду DHCP на отключенном интерфейсе ethernet / задержка загрузки

    Управление настройками из каталога / sys в arch

    Как я могу исправить эту ошибку зависимостей при обновлении clamav с помощью yum?

    Linux и Unix - лучшая ОС в мире.