`echo test?` печатает `test2`, но` ls test? 'ничего не печатает

Недавно я играл с bash, и я заметил следующее:

Сначала сделайте 2 dirs:

$ mkdir test $ mkdir test2 

Затем:

 $ echo test? 

Выходы (правильно):

 test2 

Но:

 $ ls test? 

Не выводит ничего …

Но, если вы создадите еще один каталог (test3), echo и ls работают так, как предполагалось.

Кто-нибудь знает, почему это происходит?

  • Псевдоним для списка каталогов, отсортированный по времени, измененный в обратном порядке
  • не может 'ls' / mnt каталог
  • Как я могу перечислить файлы по классу / индикатору (как в ls -classify), а затем по имени?
  • Как я могу перечислять скрытые каталоги, затем каталоги, затем скрытые файлы и, наконец, файлы с ls?
  • Скажите, скрыта ли папка / файл в Mac OS X
  • Автозаполнение Bash дает другое имя файла, чем ls
  • Определение количества файлов и подкаталогов в Linux
  • Как мне выполнить ls, а затем отсортировать результаты по дате?
  • One Solution collect form web for “`echo test?` печатает `test2`, но` ls test? 'ничего не печатает”

    Давайте попробуем и поймем из основного.

     mkdir test touch file mkdir test1 mkdir test2 

    ? ищет один и только один символ.

    Теперь, когда мы выдаем команду ls tes? выход будет, file .

    Это сработало, потому что мы создали файл внутри каталога. Из man-страницы ls ,

     NAME ls - list directory contents 

    Тест каталога содержит file внутри, поэтому команда ls фактически перечисляет файлы, которые находятся внутри каталога.

    Теперь давайте создадим файл, как показано ниже.

     touch ramesh ls rames? ramesh 

    Причина, по которой эта команда работала, заключается в том, что ramesh является файлом, и он присутствует в текущем каталоге (в соответствии с работой ls он перечисляет содержимое каталога, а в текущем каталоге на самом деле есть файл с именем ramesh ).

    Теперь давайте создадим каталог с именем ram1 как ram1 ниже.

     mkdir ram1 ls ram? 

    Вышеизложенное ничего не дает. Это связано с тем, что в каталоге ram1 нет файлов внутри него. Теперь, если мы создаем другой каталог с именем ram2 и try, он работает, потому что он сначала проверяет, есть ли в каталоге ram1 какие-либо файлы, а затем проверяет, есть ли в ram2 какие-либо файлы. Помните, что работает над сортировкой.

    Если вы хотите больше узнать о внутренней работе, выполните команду stat .

    В этом случае stat ram? будет производить выход как,

      File: `ram1' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 805h/2053d Inode: 6743976 Links: 2 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2014-06-30 18:17:06.000000000 -0500 Modify: 2014-06-30 18:17:03.000000000 -0500 Change: 2014-06-30 18:17:03.000000000 -0500 
    Interesting Posts

    Конфигурация alsa для запуска

    Корневой пароль меняется

    visudo + как получить доступ к пользователю от другого пользователя

    Можно установить 32-разрядный контейнер LXC в 64-разрядный хост с поддержкой multilib?

    увеличивать значение, извлекаемое из файла

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

    Как я могу убить процесс и убедиться, что PID не был повторно использован

    Как я могу предварительно настроить беспроводную сеть, которую я еще не видел?

    Как получить текущую раскладку клавиатуры?

    Насколько велика буферная труба?

    Настольный Linux-дистрибутив, удобный для ноутбука (с док-станцией с 1x VGA и 2x Display Port)

    Как остановить проверку файловой системы (fsck) при загрузке?

    Как сохранить пару ключей имени пользователя и пароля в SSH в GIT Bash?

    Скрипт пытается создать файлы, даже если им это не нужно?

    Движение мыши перемещается, когда средняя кнопка удерживается

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