& ldquo; пути должны предшествовать выражению & rdquo; при попытке найти все jpg-файлы в текущем каталоге

во время выполнения команды find, чтобы найти все jpg-файлы в текущем каталоге как

find . -maxdepth 1 -type f -name *.jpg

Я получаю ошибку как:

find: paths must precede expression: pic1 (1).jpg Usage: find [-H] [-L] [-P] [-Olevel] [-Dhelp|tree|search|stat|rates|opt|exec] [path...] [expression]

Я не могу выяснить, что с этим не так.

3
задан 15 March 2011 в 00:28

9 ответов

Всегда указывайте globs в find: find . -maxdepth 1 -type f -name "*.jpg"

Чтобы узнать, почему, попробуйте проследить исходную команду и посмотрев, что на самом деле выполняется:

touch foo.jpg bar.jpg
strace find . -maxdepth 1 -type f -name *.jpg 2>&1 | grep jpg
execve("/usr/bin/find", ["find", ".", "-maxdepth", "1", "-type", "f", "-name", "bar.jpg", "foo.jpg"], [/* 62 vars */]) = 0
...
9
ответ дан 25 May 2018 в 22:33
  • 1
    strace - отличный инструмент, но, безусловно, переборщик для тех, кто не понимает расширение оболочки. Гораздо проще вернуться в историю оболочки и просто добавить команду с помощью «echo». – Adam Byrtek 15 March 2011 в 03:42
  • 2
    Always, как всегда :), слишком часто. find proj* -type f -name foobar` будет искать в каждом каталоге, который соответствует, например, / proj*; отлично и разумно. – user unknown 26 March 2011 в 20:57

Всегда указывайте globs в find: find . -maxdepth 1 -type f -name "*.jpg"

Чтобы узнать, почему, попробуйте проследить исходную команду и посмотрев, что на самом деле выполняется:

touch foo.jpg bar.jpg strace find . -maxdepth 1 -type f -name *.jpg 2>&1 | grep jpg execve("/usr/bin/find", ["find", ".", "-maxdepth", "1", "-type", "f", "-name", "bar.jpg", "foo.jpg"], [/* 62 vars */]) = 0 ...
9
ответ дан 25 July 2018 в 22:21

Всегда указывайте globs в find: find . -maxdepth 1 -type f -name "*.jpg"

Чтобы узнать, почему, попробуйте проследить исходную команду и посмотрев, что на самом деле выполняется:

touch foo.jpg bar.jpg strace find . -maxdepth 1 -type f -name *.jpg 2>&1 | grep jpg execve("/usr/bin/find", ["find", ".", "-maxdepth", "1", "-type", "f", "-name", "bar.jpg", "foo.jpg"], [/* 62 vars */]) = 0 ...
9
ответ дан 31 July 2018 в 13:14

Всегда указывайте globs в find: find . -maxdepth 1 -type f -name "*.jpg"

Чтобы узнать, почему, попробуйте проследить исходную команду и посмотрев, что на самом деле выполняется:

touch foo.jpg bar.jpg strace find . -maxdepth 1 -type f -name *.jpg 2>&1 | grep jpg execve("/usr/bin/find", ["find", ".", "-maxdepth", "1", "-type", "f", "-name", "bar.jpg", "foo.jpg"], [/* 62 vars */]) = 0 ...
9
ответ дан 2 August 2018 в 03:48

Всегда указывайте globs в find: find . -maxdepth 1 -type f -name "*.jpg"

Чтобы узнать, почему, попробуйте проследить исходную команду и посмотрев, что на самом деле выполняется:

touch foo.jpg bar.jpg strace find . -maxdepth 1 -type f -name *.jpg 2>&1 | grep jpg execve("/usr/bin/find", ["find", ".", "-maxdepth", "1", "-type", "f", "-name", "bar.jpg", "foo.jpg"], [/* 62 vars */]) = 0 ...
9
ответ дан 4 August 2018 в 19:52

Всегда указывайте globs в поиске: find. -maxdepth 1 -type f -name "* .jpg"

Чтобы узнать, почему, попробуйте проследить исходную команду и посмотреть, что на самом деле выполняется:

  touch foo.jpg bar.jpg найти strace.  -maxdepth 1-type f -name * .jpg 2 & amp; 1 |  grep jpg execve ("/ usr / bin / find", ["find", ".", "-maxdepth", "1", "-type", "f", "-name", "bar.jpg"  , "foo.jpg"], [/ * 62 vars * /]) = 0 ...  
9
ответ дан 6 August 2018 в 03:55

Всегда указывайте globs в поиске: find. -maxdepth 1 -type f -name "* .jpg"

Чтобы узнать, почему, попробуйте проследить исходную команду и посмотреть, что на самом деле выполняется:

  touch foo.jpg bar.jpg найти strace.  -maxdepth 1-type f -name * .jpg 2 & amp; 1 |  grep jpg execve ("/ usr / bin / find", ["find", ".", "-maxdepth", "1", "-type", "f", "-name", "bar.jpg"  , "foo.jpg"], [/ * 62 vars * /]) = 0 ...  
9
ответ дан 7 August 2018 в 21:52

Всегда указывайте globs в поиске: find. -maxdepth 1 -type f -name "* .jpg"

Чтобы узнать, почему, попробуйте проследить исходную команду и посмотреть, что на самом деле выполняется:

  touch foo.jpg bar.jpg найти strace.  -maxdepth 1-type f -name * .jpg 2 & amp; 1 |  grep jpg execve ("/ usr / bin / find", ["find", ".", "-maxdepth", "1", "-type", "f", "-name", "bar.jpg"  , "foo.jpg"], [/ * 62 vars * /]) = 0 ...  
9
ответ дан 10 August 2018 в 10:07

Всегда указывайте globs в поиске: find. -maxdepth 1 -type f -name "* .jpg"

Чтобы узнать, почему, попробуйте проследить исходную команду и посмотреть, что на самом деле выполняется:

  touch foo.jpg bar.jpg найти strace.  -maxdepth 1-type f -name * .jpg 2 & amp; 1 |  grep jpg execve ("/ usr / bin / find", ["find", ".", "-maxdepth", "1", "-type", "f", "-name", "bar.jpg"  , "foo.jpg"], [/ * 62 vars * /]) = 0 ...  
9
ответ дан 13 August 2018 в 16:28
  • 1
    strace - отличный инструмент, но, безусловно, переборщик для тех, кто не понимает расширение оболочки. Гораздо проще вернуться в историю оболочки и просто добавить команду с помощью «echo». – Adam Byrtek 15 March 2011 в 03:42
  • 2
    Всегда , как всегда :), слишком часто. find proj * -type f -name foobar` будет искать в каждом каталоге, который соответствует ./proj* например; отлично и разумно. – user unknown 26 March 2011 в 20:57

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

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