Отображает ли `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 фактически показывает текущий каталог?

  • Таинственный файл, который я не могу удалить
  • что является лучшим учебным пособием для экзамена LPIC2
  • как запустить «play start» в качестве службы linux
  • Загрузить Linux из меню GRUB
  • какой язык программирования требуется для разработки ОС Linux?
  • Как объединить или расширить объем в Linux?
  • Зеркала в кэше yum
  • Будет ли vmstat bi / bo отображать статистику для сырого устройства
  • 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

    Где в исходном коде GRUB2 есть передача / переход к коду ядра?

    Добавить данные в файл, но не из содержимого? (стеганография)

    переменное расширение в подстановке команд над SSH bash 4.X

    Как отслеживать использование пользовательского диска в Linux

    Очистить каталог $ HOME

    Что является хорошим инструментом для синхронизации двух компьютеров

    Потерянные заголовки окон и все после выбора темы плохого окна в Linux Mint

    Копировать разницу с KDE Dolphin

    dh_install: libnanomsg-dev отсутствуют файлы (usr / lib / * / lib * .a), прерывание

    Изменение неустановленных расширений файлов

    Открытый ключ не работает … но он совпадает с ключом хоста

    Добавить команду «закончена» после использования определенной команды

    Альтернатива наблюдению за поддержкой цветов

    Как загрузиться с помощью grub2 rescue promt в систему UEFI?

    Как мне выполнить ls, а затем отсортировать результаты по дате?

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