Я натрапив на глобальні зразки та шаблони, і мене це особливо цікавить [!].
Ця конструкція схожа на
[!]конструкцію, але замість того, щоб відповідати будь-яким символам усередині дужок, вона відповідатиме будь-яким символам, доки вона не вказана між[та].
rm myfile [!192]
Вище, я вважаю, видалить будь-які / всі файли, за винятком будь-яких / всіх файлів, які мають ім'я 192.
Однак мене турбує правильне використання цього файлу з розширенням файлу, зокрема, з кількома умовами.
Який би був правильний синтаксис у такій ситуації?
rm myfile [!.gif .csv. mp3]
або
rm myfile [!.gif !.csv !.mp3]
Мене хвилює те, що період може бути заміщений, і тому будь-який файл із .(який би був будь-який із них?) Потім маніпулював би, коли я прагну викликати маніпуляції з певними файлами.
Ця конструкція схожа на [ ]конструкцію, але замість того, щоб відповідати будь-яким символам усередині дужок, вона відповідатиме будь-яким символам, доки вона не вказана між [та ].
(цитується з http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm )
Тепер; мені здається, що однини !є достатньою, і всі значення в ній після містяться в межах.
[!]говорить схоже, але не так[!]
^має таке саме значення, як і !в цьому контексті, тому [^a]виключає aточно так само, як [!a]це робиться: Якщо перший символ, що слідує за [є a! або ^, тоді будь-який символ, що не вкладається, відповідає. ( man bash)
rm myfile [!192]видалить myfileбудь-який файл Односимвольний, а не по імені 1, 9або 2.
ls my-patternабоecho my-commandперевірте, чи робитьсяrm