2017-01-26 6 views
-2

Я нашел эту команду онлайн, находя и отображая жесткие ссылки на файл, например. text.txt.Значение восклицательного знака в командной строке Bash

Мой вопрос: что такое восклицательный знак (!) В этой команде?

find $PWD ! -type d -links +1 -ls | sort -n|cut -d" " -f29 | grep --color=auto "$2" 
+0

Он также известен как * «взрыва» * –

+1

Попробуйте использовать 'человек find' для документации по синтаксису этой команды. – larsks

+0

Посмотрите, например, http://stackoverflow.com/questions/1341467/unix-find-for-finding-file-names-not-ending-in-specific-extensions (и справочную страницу 'find '). –

ответ

0

Это отрицает следующее условие. Таким образом, ! -type d означает «не каталог».

Есть одна проблема: ! также является особым символом, который используется для создания расширения bash. Вот почему вам часто приходится бежать (... \! ...) или процитировать (... "!" ...).

См. Также: Руководство для find (попробуйте man find или info find).

+0

Я просто читал [BashPitfalls] (http://mywiki.wooledge.org/BashPitfalls#echo_.22Hello_World.21.22), и кажется, что на самом деле нужны одинарные кавычки ... (esp до Bash 4.3) (\! Может работать ...) –