2012-09-16 9 views
12

nadzieję, że ktoś może w tym pomóc:-maxdepth opcja po nieopcyjnych i znaleźć: ścieżki muszą poprzedzać wyraz

próbuję usunąć pliki sesyjne na/tmp z tym poleceniem:

find /tmp -name 'sess_*' -user Username -maxdepth 1 $CMD {} \; 

ale mam te błędy:

znalezisko: ostrzeżenie: podałeś opcję -maxdepth po argument nie będący opcją -name, ale opcje są pozycyjny (-maxdepth AFF ects testy określone przed nim oraz te określone po ). Proszę podać opcje przed innymi argumentami.

find: paths must precede expression Usage: find [-H] [-L] [-P] [path...] [expression] 

Szukałem rozwiązania w internecie, ale nie mógł znaleźć. Usunąłem inne pliki tmp z innymi poleceniami i zastanawiam się, czy to wpłynęło na jakiś wolumen lub gniazdo.

góry dziękuję

+0

dodać '-exec' przed' $ CMD' – Drakosha

Odpowiedz

22

find posiada trzy rodzaje opcji: opcje, które są używane w celu dopasowania plików (np -name, -user), opcje, które określają działania, aby wykonać na dopasowanych plików (-print, -exec) oraz opcje kontrolujące ogólne zachowanie polecenia (np. -maxdepth, -xdev). Trzeci typ należy umieścić przed pozostałymi dwoma. Powinno być:

find /tmp -maxdepth 1 -name 'sess_*' -user Username -exec $CMD {} \; 
+0

Ah Widzę, już próbowałem, ale brakowało części -exec. Dzięki Barmar. Polecenie poszło, ale każdy plik kończy się z powodu odmowy uprawnień. Myślę, że ponieważ usuwam sesje do mojego konta nazwy użytkownika, ponieważ/tmp ma odpowiednie uprawnienia: drwxrwxrwt 4 root root 1168384 Sep 15 17:21 – Amit

+0

Nieważne! Odmowa dostępu dla plików należących tylko do użytkownika root, ale inne osoby należące do administratora zostały usunięte w trybie cichym. Nic nie powtarza się po usunięciu. Dziękuję wam wszystkim. – Amit

+1

Jeśli chcesz, aby echo coś znalazło po znalezieniu pasującego pliku, użyj opcji -print. – Barmar

Powiązane problemy