find - jak usun

Tematy związane z oprogramowaniem, instalacją, konfiguracją
grzesmlodzian
Posty: 33
Rejestracja: 09 marca 2011, 14:47

find - jak usunąć początkową część w wypisywanym tekscie?

Post autor: grzesmlodzian »

Witam
Mam taki problem: mam pewien katalog. Załóżmy że nazywa się 'folder' i znajduje się w folderze użytkownika. Jeżeli znajduje się w folderze tego użytkownika i wydam polecenie 'find folder' wypisze mi pliki w postaci 'folder/plik1', 'folder/plik2' itd. Chciałbym jakoś usunąć ten 'folder' z początku żeby wypisywało samo 'plik1', 'plik2'. Mógłbym po prostu wejść do folderu i wpisać samo 'find' ale nie chcę tego robić. Próbowałem szukac w man'ie ale trochę dużo tego :(
Proszę pomóżcie.
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post autor: kodama »

No a nie łatwiej po prostu zrobić:

Kod: Zaznacz cały

 ls [i][b]folder[/b][/i]
?
grzesmlodzian
Posty: 33
Rejestracja: 09 marca 2011, 14:47

Post autor: grzesmlodzian »

Nieee... nie napisałem dokładnie. Ja mam tam odpowiednie kryteria. Ogólnie to mam skrypta w którym mam zmienne SRCDIR i DSTDIR. Chcę żeby za pomocą jednego polecenia znalazło wszystkie pliki w katalogu SRCDIR według podanych kryteriów (-name "*.dem" -mmin +1) i spakowało je za pomocą polecenia "tar" i kompresji bzip2 każde osobno do katalogu DSTDIR. Plik o nazwie 'pliczek.dem' w katalogu SRCDIR po wykonaniu polecenia powinien być w katalogu DSTDIR, być skompresowany i mieć nazwę 'pliczek.dem.bz2'.
Wiem że trochę mieszam ale zależy mi żeby zrobić to jednym poleceniem. SRCDIR i DSTDIR są ścieżkami bezwzględnymi.
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2324
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Coś takiego?

Kod: Zaznacz cały

find /folder/* -name "*.dem" -mmin +1
O ile mnie pamięć nie myli find zwraca wartości od podanej ścieżki bezwzględnej, ale mogę nie pamiętać lub pamiętać źle :P, rzadko go używam a to piszę z głowy.
maxdawid
Posty: 52
Rejestracja: 17 września 2008, 11:30

Post autor: maxdawid »

Ściężki względne dla danego katalogu można uzyskać za pomocą:

Kod: Zaznacz cały

find /katalog -name szukany_plik -printf '%P\n'
grzesmlodzian
Posty: 33
Rejestracja: 09 marca 2011, 14:47

Post autor: grzesmlodzian »

Ale z tego co mi wiadomo printf odpowiada za wypisywanie, a ja nie chce tego wypisać tylko użyć w exec'u jako {}.
Awatar użytkownika
hello_world
Posty: 66
Rejestracja: 15 maja 2009, 21:03

Post autor: hello_world »

Kod: Zaznacz cały

find gdzie -name wzorzec  -printf "%f\n"

Kod: Zaznacz cały

find `pwd` -name wzorzec -exec basename {} \;
ODPOWIEDZ