Почему команда «ls» * «" ничего не показывает?

ls "*" 

Это ничего не показывает в моем каталоге. Зачем?

Разве это не * подстановочный знак, который будет показывать все?

  • Использовать использование команды ожидания в Linux?
  • Добавление вертикального пространства после команды в bash
  • Почему redirection (>) не работает иногда, но добавляет (>>)?
  • Подстановка команд в качестве цели для перенаправления ввода-вывода
  • Перемещение файлов / таблицы по критериям выбора
  • Вы можете указать «здесь документ»?
  • Как автоматически запускать команду после выхода из ssh
  • Извлечь файлы с определенным расширением файла и сохранить структуру каталогов?
  • Как реализовать динамическое автоматическое завершение bash
  • Как использовать printf и% s при наличии цветовых кодов?
  • Как проверить, установлен ли каталог на диске X и монтировать его, если он не является
  • Значение «+» или «-» в сообщениях nohup
  • 2 Solutions collect form web for “Почему команда «ls» * «" ничего не показывает?”

    Когда он находится в двойных кавычках, * не рассматривается как глобус, и поэтому не расширяется. Поэтому вы просите ls указать файл с именем * , который, вероятно, не существует.

    Чтобы увидеть все файлы, вы можете запускать ls без каких-либо аргументов, так как по умолчанию это показать вам все файлы в текущем каталоге. Если вы хотите передать все файлы в качестве аргументов в ls по какой-либо причине, просто удалите кавычки, чтобы вы запускали

     ls * 

    но это действительно похоже на

     ls 

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

     ls *.* /Dir (dir is optional) 

    перечисляет каждый файл (независимо от типа файла) в текущем рабочем каталоге пользователей (найденном pwd) или в / Dir и

     ls * /Dir (dir optional) 

    перечисляет каждый файл и каталог один ниже в текущем рабочем каталоге пользователя или в / Dir. Однако,

     ls "*" & ls *.* 

    не будут перечислены рекурсивно, для этого вам нужно

     ls -R *.* /Dir 

    или

     ls -R "*" /Dir 

    Что касается причин

     ls "*" 

    не работает правильно, вы правы: * является подстановочным знаком, и когда вы вызываете ls так:

     ls "*" 

    вы просите bash найти файл и / или каталог, в котором есть звездочка. Я установил IDE и не смог найти конфигурацию и основные файлы для него, поэтому я использовал эти команды для поиска файлов:

    (найти файлы, соответствующие шаблону, и перенаправить их в определенный файл)

     locate *eclipse* >locate_eclipse.txt locate *tar* > locate_tar.txt locate *.tar* > locate_".tar".txt locate *compiler* > locate_compiler.txt locate *JRE* > locate_JRE.txt locate *jre* > locate_jre.txt 

    (Искал всю файловую систему и печатает только те, которые соответствуют шаблону)

     ls -R / | grep "eclipse" ls -R / | grep "tar" ls -R / | grep ".tar" ls -R / | grep "compiler" ls -R / | grep "JRE" 

    Извините за spiel, но я попытался охватить большинство баз.

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