Strona 1 z 1

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

: 20 lipca 2013, 16:28
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.

: 20 lipca 2013, 22:20
autor: kodama
No a nie łatwiej po prostu zrobić:

Kod: Zaznacz cały

 ls [i][b]folder[/b][/i]
?

: 21 lipca 2013, 09:51
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.

: 21 lipca 2013, 10:25
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.

: 21 lipca 2013, 11:51
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'

: 21 lipca 2013, 14:04
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 {}.

: 25 lipca 2013, 23:41
autor: hello_world

Kod: Zaznacz cały

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

Kod: Zaznacz cały

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