Uruchomię to polecenie:
~/shell_temp$ find . -type f -name "IMAG1806.jpg" -exec rm -f {}\
Mam wynik poniżej:
> IMAG1806.jpg
Error:
find: missing argument to `-exec'
jakie jest dokładne polecenie znajdowania dowolnego pliku z bieżącego katalogu i usuwania za pomocą -exec
?
command-line
find
Akshay Patel
źródło
źródło
rm "IMAG1806.jpg"
? Jest w tym samym katalogu, więc wiesz, jak się nazywa.-exec rm
wystarczy użyć-delete
bezpośrednio.Odpowiedzi:
Przegapiłeś „a”
;
na końcu (oraz spację między{}
i;
). Prawidłowe polecenie to:;
wskazuje koniec-exec
predykatufind
.Zauważ też, że użyliśmy
\;
np.\
Przed,;
aby uniknąć interpretacji;
przez powłokę, w przeciwnym razie powłoka będzie traktować;
jako koniec całejfind
komendy ifind
wygeneruje ten sam błąd. Możesz także użyć';'
zamiast\;
.Używałeś
\
na końcu, oznacza to, że twoja powłoka będzie nadal pobierać dane wejściowe przezPS2
(wskazane przez>
), wpisałeśIMAG1806.jpg
ponownie, więc całe polecenie staje się:Jak widać, nie jest to w ogóle poprawne polecenie z
IMAG1806.jpg
końcem, bez zamykania-exec
predykatu i bez spacji między{}
i\;
.źródło
;
na końcu” Dzięki za to spędziłeś 10 minut na rozwiązywaniu problemów, zanim zdałem sobie sprawę, że przypadkowo wpisałem:
zamiast;
na tych nowoczesnych ekranach HD, których łatwo przeoczyć ...Możesz po prostu
Ze strony podręcznika:
źródło