2015-04-10 2 views
1

Я знаю, как найти файлы с суффиксом .txt в текущем каталоге: find *.txtПоиск файлов в текущем каталоге, имя которого не содержат «.txt» в Linux

Как инвертировать это?

Я новичок в Linux, поэтому, пожалуйста, помогите. Благодаря!

+0

@ John1024: Вероятно, вы думаете о 'find -name '* .txt''; 'find * .txt', из-за использования _unquoted_ glob, будет соответствовать файлам' * .txt' в каталоге _current_ (потому что это _shell_ выполняет globbing) и передать соответствующие файлы в качестве аргументов 'find' (гипотетически, если в них были '* .txt'_directories_,' find' _would_ recurse, перечисляя там _all_ файлы. – mklement0

+0

@ mklement0 Вы правы. – John1024

ответ

2

Если вы просто хотите, текущий каталог, и ваша оболочка Баш:

shopt -s extglob 
ls !(*.txt) 

reference

+0

спасибо, что это решило. –

2

находка в текущем файле не рекурсивного

find -maxdepth 1 ! -name "*.txt" 
+0

@NickKitto: Кажется, это правильный ответ; что заставляет вас думать, что это не так? – mklement0