Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-01-25 08:32:47

  rulezdc - Członek DUG

rulezdc
Członek DUG
Skąd: Tarnowskie Góry
Zarejestrowany: 2007-05-22

Bash - usuwanie danych z wielu podkatalogów

Witam
Taki przypadek. Jest sobie kilkanaście katalogów, w każdym z tych katalogów znajduje się podkatalog .kosz (aby userzy mieli jeszcze szansę odzyskać dane).
Jak szybko załatwić usuwanie danych z tego katalogu (.kosz). tak myślę nad rozwiązaniem i normalnie zaćma.
Będę wdzięczny za informacje
Pozdrawiam

Offline

 

#2  2011-01-25 08:37:47

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: Bash - usuwanie danych z wielu podkatalogów

Kod:

rm */.kosz/*

jeśli chcesz mieć większą kontrolę

Kod:

for DIR in A B C D; do rm ${DIR}/.kosz/*; done

Ostatnio edytowany przez azhag (2011-01-25 08:38:49)


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#3  2011-01-25 17:06:31

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Bash - usuwanie danych z wielu podkatalogów

Kod:

find . -iname '.kosz' -and -type d |while read line; do echo rm -rf $(readlink -f "$line")/*; done

Offline

 

#4  2011-01-26 14:23:44

  rulezdc - Członek DUG

rulezdc
Członek DUG
Skąd: Tarnowskie Góry
Zarejestrowany: 2007-05-22

Re: Bash - usuwanie danych z wielu podkatalogów

Witam
Dziękuję za odpowiedź, przetestuje w wolnej chwili. jednak mam jeszcze jedno pytanie
Jest sobie katalog /home/tom/dane (znajdują się w nim katalogi z danymi) oraz katalog /opt/arch/1
Chciałbym aby kopiować pliki, których czas modyfikacji jest mniejszy niż 1 dzień i robię to poleceniem

Kod:

 find /home/tom/dane -ctime -1 -exec cp {} /opt/arch1/ \;

Dane się kopiują jednak wszystkie w jednym katalogu, a chciałbym aby kopiowała się cała struktura katalogów plus pliki w nich zawarte
próbowałem

Kod:

cp -r

oraz

Kod:

 cp -R

Jednak w pierwszym przypadku owszem kopiują się dane z katalogami, jednak kopiują się również wszystkie pliki powtórnie do katalogu głównego. z tego co wyczytałem z mana jednak tych opcji nie powinno się używać
Będę wdzięczny za podpowiedzi
Pozdrawiam

Ostatnio edytowany przez rulezdc (2011-01-26 14:54:20)

Offline

 

#5  2011-01-26 15:02:08

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: Bash - usuwanie danych z wielu podkatalogów

Jeszcze -maxdepth 1 w find.


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#6  2011-01-27 13:36:56

  rulezdc - Członek DUG

rulezdc
Członek DUG
Skąd: Tarnowskie Góry
Zarejestrowany: 2007-05-22

Re: Bash - usuwanie danych z wielu podkatalogów

Tak nie do końca, bo przy wykonaniu

Kod:

 find /home/tom/dane -maxdepth 1 -ctime -1 -exec cp {} /opt/arch1/ \;

Mam błąd:
Pominięto katalog 1 ... itd
Kopiuje tylko pliki z głównego katalogu a podkatalogi pomija
Pozdrawiam

Offline

 

#7  2011-01-27 14:03:50

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: Bash - usuwanie danych z wielu podkatalogów

bo zapomniałeś o -r w cp


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#8  2011-01-27 15:16:36

  rulezdc - Członek DUG

rulezdc
Członek DUG
Skąd: Tarnowskie Góry
Zarejestrowany: 2007-05-22

Re: Bash - usuwanie danych z wielu podkatalogów

witam
właśnie sprawdziłem działanie
i działa następująco;
mam w katalogu /home/tom/dane katalogi one, two, three
i po komendzie

Kod:

find /home/tom/dane -maxdepth 1 -ctime -1 -exec cp -r {} /opt/arch1/ \;

w katalogu  /opt/arch1 mam następujące katalogi
one two three oraz katalog dane
teraz ladnie kopiuje katalogi ale kopiuje rowniez katalog glowny z wszystkimi plikami
powalcze dziś nad tym tematem
mozę cos znajdę
pozdrawiam i narazie dziękuję za pomoc

Offline

 

#9  2011-01-27 19:15:01

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Bash - usuwanie danych z wielu podkatalogów

rulezdc napisał(-a):

teraz ladnie kopiuje katalogi ale kopiuje rowniez katalog glowny

chodzi o to ze kopiuje pliki ktore sa w /home/tom/dane/ a Ty tego nie chesz ... powiedz findowi zeby szukal tylko katalogow -> przelacznik -type z odpowiednim argumentem ...


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#10  2011-01-27 19:40:37

  rulezdc - Członek DUG

rulezdc
Członek DUG
Skąd: Tarnowskie Góry
Zarejestrowany: 2007-05-22

Re: Bash - usuwanie danych z wielu podkatalogów

Ja chce aby kopiował wszystkie dane  znajdujące się w katalogu /home/tom/dane/ (czyli podkatalogi i pliki w nich zawarte nie starsze jak jeden dzień). Jednak jak kopiuje według ww komendy to w katalogu /opt/arch mam następującą strukturę:

Kod:

/opt/arch1 zawiera:
/dane
/one
/two
/three

Czyli kopiuje mi zawartość całego katalogu dane 1:1 jak również podkatalogi w nim się znajdujące z plikami  nie starszymi jak 1 dzień

Offline

 

#11  2011-01-27 20:57:45

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: Bash - usuwanie danych z wielu podkatalogów

Raczej chodzi o to, że wśród wyników find znajduje się również katalog . w szukanej ścieżce (czyli ona sama).

Można to obejść:

Kod:

azhag@laptop /tmp % find /tmp/a  -maxdepth 1 -type d 
/tmp/a
/tmp/a/c
/tmp/a/d
/tmp/a/b
azhag@laptop /tmp % find /tmp/a  -maxdepth 1 -type d -printf "%P\n"

c
d
b
azhag@laptop /tmp % find /tmp/a  -maxdepth 1 -type d ! -path "/tmp/a"
/tmp/a/c
/tmp/a/d
/tmp/a/b

Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)