Перенаправлення виводу та пробіли


9

Я параноїчний з цього приводу, але сподіваюся, це просте питання:

Чи є різниця між

cat file1 | egrep -oP "[Mm]y string" > /home/user/file.txt

і

cat file1|egrep -oP "[Mm]y string">/home/user/file.txt

тобто, чи має значення, якщо у мене є пробіли, що заповнюють символи "труба" | Я справді параноїчний, що маючи пробіли там, пробіли якимось чином опиняться у вихідному файлі, коли я цього не хочу. Хтось може уточнити? (Використання Ubuntu 12 / bash, якщо це має значення.)


Єдині відмінності: а) косметична та б) зручність при редагуванні командних рядків в баші - наприклад, "слово" розмежоване пробілами, тому без пробілів навколо |або >потім введення Ctrl-Wдля видалення попереднього "слова" буде видалено більше, ніж ви, мабуть, хотіли. ditto для натискання клавіш на переміщення курсору, як Esc-fі Esc-bт. д.
cas

Відповіді:


8

У командному рядку оболонки пропущені цитати служать лише для розмежування слів під час розбору команд. Вони не передаються ні в аргументах, які команда не бачить, ні в стандартному потоці введення.


Ви впевнені, що немає вразливості безпеки при використанні пробілу після операторів? Зараз я важко відтворюю його, але є поширений подвиг, коли зловмисник може змінити призначену операцію, використовуючи такий файл, як "fileName", коли призначений файл був "fileName".
CrippledTable
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.