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

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 !)

  • sudo no password breaks другие sudo -u использует
  • Cant Удалить 2 раздела (Fat32 и ext3) на USB-накопителе Toshiba 16G
  • @postgres - begginer ищет помощь
  • Сортировка процессов путем использования памяти
  • Будет ли Linux стать UNIX, а не просто UNIX?
  • Найти процесс в кеше или буфере
  • Как создать журнал или отправить журнал электронной почты при запуске указанного процесса
  • Использование дополнительных / менее общих ресурсов NFS для просмотра больших файлов
  • какой язык программирования требуется для разработки ОС Linux?
  • Не удается запустить roundcube
  • Загрузить Linux из меню GRUB
  • setxkbmap возвращается после ввода второй клавиатуры
  • Interesting Posts

    Графика при загрузке, как backtrack linux или Gentoo live DVD после нажатия alt + F1 при загрузке

    Откуда появляется FQDN, если он не установлен явно?

    Создать скрипт для проверки размера каталога

    Использование grep или awk

    Почему команда echo не работает с командой?

    Узнайте, сколько времени процесс, проведенный в нем сам

    Попытка подключиться через cl

    Vim приостанавливается случайным образом в течение минуты или около того за раз

    Последний (или по крайней мере не древний) Chromium binary?

    цикл xargs с переменной ввода для использования в команде с несколькими командами

    linux curl POST запрос не работает

    Предотвращение нарушения Fedora OS моей конфиденциальности со статическим адресом ipv6 EUI-64

    Linux; запускать сценарий, когда конкретный хост становится доступным (входит в систему в AP)

    Как я могу начать dwm с другого представления (т. Е. Другого тега)?

    Что произойдет, если я отформатирую установленный USB-накопитель с флагом -force?

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