Почему следующая команда bash не работает должным образом?

Попробуйте связать их с Tweak Ubuntu. Ubuntu Tweak сохраняет мои привязки привязки, возможно, вы можете попробовать. См. Мой подробный ответ здесь: https://askubuntu.com/a/150380/64580.

1
задан 10 September 2012 в 10:05

3 ответа

Удалите скобки.

 ls -l /var/ | grep www > folder_exists

Работает отлично.

1
ответ дан 25 May 2018 в 07:22
  • 1
    Это сделал человек, спасибо! – NlightNFotis 20 August 2012 в 23:20
  • 2
    Не совсем, если вы хотите проверить «www " а не для любой другой папки, содержащей строку " www & quot ;. – January 20 August 2012 в 23:23

Аргумент -l к ls заставляет его включать в себя много посторонней информации, которая будет вызывать grep. Правильной командой будет ls -a /var/ | grep www > folder_exists.

1
ответ дан 25 May 2018 в 07:22
  • 1
    Я не думаю, что есть проблема с информацией, предоставленной флагом -l, grep прошел мимо меня в прошлом, без каких-либо проблем. Единственная проблема, которую я мог бы иметь, - это латентность, но я не страдаю такими проблемами. – NlightNFotis 20 August 2012 в 23:19
  • 2
    Хотя, если одна из папок принадлежит пользователю с www в их имени, то он будет работать с параметром -l. – Alex L. 20 August 2012 в 23:25
  • 3
    Я скажу вам, что: я буду удивлять вас, если вы могли бы объяснить мне, почему это потерпит неудачу, потому что я этого не понимаю. – NlightNFotis 20 August 2012 в 23:33
  • 4
    Я создаю группу под названием wwwgroup и создаю папку в /var, называемую something, которая принадлежит группе wwwgroup. Если я запустил ls -l | grep www, я получаю drwxr-xr-x 2 root root 4096 Aug 15 21:35 www/ \ n drwxr-xr-x 2 root wwwgroup 4096 Aug 15 21:35 something/ – Alex L. 20 August 2012 в 23:37
  • 5
    Понимаю. Спасибо за разъяснение. – NlightNFotis 20 August 2012 в 23:42

Я бы предложил использовать find для такой задачи:

find /var -type d -name '*www*' -maxdepth 1
-name '*www*' соответствует чему-либо, названному чем-то с www, используйте -iname, если совпадение должно быть нечувствительным к регистру. find является рекурсивным по умолчанию, поэтому опция maxdepth гарантирует соответствие только /var/*www*. -type d указывает, что он должен быть каталогом.
1
ответ дан 25 May 2018 в 07:22
  • 1
    Хороший ответ! Я определенно попробую ваш подход, так как это может быть полезно и в другом случае. Спасибо. – NlightNFotis 20 August 2012 в 23:38

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

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