...szóval van 2 könyvtáram, szinte megegyezik a tartalmuk, de az egyikben egy pár fájllal több van mint a másikban. Ezen a pár fájlon kívül csak ugyanazok a könyvtárak vannak mindkettőben. Na én a picit nagyobb könyvtárból ki szeretném törölni az összes olyan könyvtárat, ami a kisebbik könyvtárban is megvan, magyarul ott csak az a pár fájl maradjon, amivel eredetileg nagyobb volt a kisebbnél:D
(Igen, tudom, zseniálisan leírtam:))
köszi
- 1140 megtekintés
Hozzászólások
Sztem a következő eszközök hatékonyak lehetnek:
- diff
- find
próbáld ki őket a két könyvtárra és találd ki, hogyan tudod a megfelelő paraméterezésükkel kiválasztani azt a fájlhalmazt, amit törölni szeretnél. Ezután erre engedd rá az rm parancsot. ;)
- A hozzászóláshoz be kell jelentkezni
Írjál rá bash scriptet.
Amúgy meg ez egy file duplication feladat. Windows alatt láttam már rá programot.
- A hozzászóláshoz be kell jelentkezni
"Ezen a pár fájlon kívül csak ugyanazok a könyvtárak vannak mindkettőben."
Jól értem, hogy a nagyobbik könyvtárban csak a megtartandó file-ok és könyvtárak vannak? Ha igen, akkor a probléma egyből átalakul azzá, hogy hogyan töröljük az összes alkönyvtárat. A nagyobbik könyvtárban kiadott find * -maxdepth 0 -type d megmondja a neked az összes alkönyvtárat, de mielőtt bármit törölsz, ellenőrizd, hogy az aktuális könyvtárat (.) kiírta-e, nehogy észnélkül azt is letöröld, valamint ha a könyvtárnevekben vannak szóközök, akkor escapelj is.
- A hozzászóláshoz be kell jelentkezni
Nem, gondoltam, hogy szarul magyaráztam:):
tehát végülis a kisebbik könyvtárat kell "kivonni" a nagyobbikból.
tehát pont fordítva, a kisebbik könyvtárban van az összes törlendő fájl és könyvtár, amelyeket törölni kell nagyobbikből, a nagyobbik összes alkönyvtátával és cókmókjával tartalmazza a kisebbik könyvtár !tartalmát!, és ezen kívül még vannak benne egyéb fájlok, amik csak a nagyobbikban vannak:D
- A hozzászóláshoz be kell jelentkezni
A 2 könyvtár alkönyvtárainak tartalma azonos vagy nem?
- A hozzászóláshoz be kell jelentkezni
azonos
- A hozzászóláshoz be kell jelentkezni
A megoldás trivi:
for i in $(cd kisebbik && find -type f); do rm /path/to/nagyobbik/$i done for i in $(cd kisebbik && find -type d); do rmdir /path/to/nagyobbik/$i done
Csak saját felelősségre!
- A hozzászóláshoz be kell jelentkezni
ehhez kar bemenni abba a konyvtarba.
man find.
t
- A hozzászóláshoz be kell jelentkezni
kifejtened bovebben?
ugyanis find /izeize kimenete ilyen lesz:
/izeize/egyik
/izeize/masik
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
-exec rm {} \;
Csak ugyessen...
konretan
cd kisebbik
find * -type f -exec rm ../nagyobbik/{} \;
Persze ez csak a faljokat torli, ertelemszeruen modositando.
-------------------------------
"A gorog katolikus noknek 8 dioptria alatt nem kotelezo a bajusz!" avagy "Nozni csak muholdal lehet..." | http://lazly.hu
- A hozzászóláshoz be kell jelentkezni
de rekurzivan mar nem jau :)
--
Unix, Perfectly "natural" after five or ten years.
- A hozzászóláshoz be kell jelentkezni
a find * -type stb. biztosan nem működik a csillag miatt....
- A hozzászóláshoz be kell jelentkezni
kifejtenéd bővebben? Ugyanis nem találtam ilyen opciót.
szerk: execdir majdnem tudja ezt. Csak az a baj vele, hogy ott meg nem lehet tudni, hogy melyik könyvtárban áll (így önmagában sajnos kevés)
- A hozzászóláshoz be kell jelentkezni
"find -type f"
ez igy erdekes
--
Unix, Perfectly "natural" after five or ten years.
- A hozzászóláshoz be kell jelentkezni
> ez igy erdekes
Ez így nem érdekes.
- A hozzászóláshoz be kell jelentkezni
find [-H | -L] path ... [operand_expression ...]
de
--
Unix, Perfectly "natural" after five or ten years.
- A hozzászóláshoz be kell jelentkezni
> de
Uncsi.
- A hozzászóláshoz be kell jelentkezni
Feladod?
--
Unix, Perfectly "natural" after five or ten years.
- A hozzászóláshoz be kell jelentkezni
Esetleg rsync -el?
- A hozzászóláshoz be kell jelentkezni