tömeges fájltörlés

Fórumok

...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

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. ;)

Írjál rá bash scriptet.
Amúgy meg ez egy file duplication feladat. Windows alatt láttam már rá programot.

"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.

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 2 könyvtár alkönyvtárainak tartalma azonos vagy nem?

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!

-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