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

  • Вывести только необходимые столбцы в df
  • Команда для получения процессорных ядер в LINUX IA64
  • Должен ли я использовать IsoHybrid для загрузки флеш-накопителей?
  • Книга о том, как Linux работает с точки зрения администратора?
  • Почему TOP никогда не показывает, что использование процессора достигает 100%?
  • Скрытые файлы, начинающиеся с B
  • Проблема с аргументом команды useradd
  • найти команду в Linux
  • 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

    Проблемы с Mint Linux Wireless

    ssh удаляет удаленную команду с псевдотерминалом

    Эффективный метод архивирования для многих дубликатов файлов

    как настроить клиент linux для использования информации ntp, предоставляемой через dhcp?

    показать год при отображении файлов в текущем каталоге

    Как создать команду bash, которая создает вывод, который точно имитирует исходный текстовый файл, который можно вставить в оболочку bash, где включен histexpand?

    Тип 1 Гипервизор аппаратных привилегий, используйте драйверы хоста.

    Автоматически инициировать исходящее SSH-соединение на сервере при подключении клиента

    Исполнение версии модуля ядра

    wget и cURL – явный адрес IPv6

    Где все возможности хранения файла журнала

    Почему параметры ключа gpg не отображаются при генерации ключа?

    SUID случайно удален из файла / bin / su

    Не удалось apt-get после изменения настроек брандмауэра

    kerberos preauth pkinit не удалось инициализировать: не было настроено правильно для поддержки pkinit

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