В чем разница между ls [13] и ls {1,3}?

Я создал три файла в моем каталоге, используя команду touch inv{1..3}.txt. Теперь я использовал две команды, и их вывод почти такой же. Эти две команды: ls inv[13].txt и ls {1,3}.txt.

Итак, как эти два разных? Как квадратные скобки отличаются от брекетов? Кроме того, я искал «linux [..]», но ничего не мог найти, так что я мог знать, что эти вещи вызывают в терминологии linux?

Спасибо

1
задан 3 September 2016 в 03:48

1 ответ

Основное различие между двумя формами проиллюстрировано здесь:

$ ls inv[15].txt
inv1.txt
$ ls inv{1,5}.txt
ls: cannot access 'inv5.txt': No such file or directory
inv1.txt

inv[15].txt - это глобус и расширит список совпадающих файлов в вашей файловой системе. Это расширение пути.

inv{1,5}.txt расширяется до inv1.txt и inv5.txt независимо от того, какие файлы фактически находятся в вашей файловой системе. Это расширение пути .

7
ответ дан 23 May 2018 в 06:31
  • 1
    Другим ключевым отличием является то, что вы можете написать ba{con,tman}, и нет эквивалента, используя квадратные скобки. IOW, расширение расширений не только для одиночных символов. – hobbs 3 September 2016 в 08:56

Другие вопросы по тегам:

Похожие вопросы: