Skocz do zawartości
Zaloguj się, aby obserwować  
HaPe

Usunięcie folderów, które mają w sobie dany folder

Polecane posty

Witam, w jaki sposób usunąć foldery w Linuxie, które zawierają w sobie folder o dane nazwie. Np. mamy taką strukturę:

/opt/apps

|

-/test8/A

-/test7/A

-/test6/X

-/test5/C

-/test4/U

-/test3/D

-/test2/A

-/test1/A

-/test0/A

 

Za pomocą jakich komend usunąć foldery, które zawierają w sobie folder o nazwie A?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Oto moja luźna propozycja tak na szybko, nie jest najlepsza, ale działa. Wyszukuję katalog w którym mam utworzony katalog A i go usuwam:

find . -type d -name A | cut -d"A" -f1 | xargs rm -rf

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To co wyżej zaproponowałeś nie będzie działać.

 

find . -type d | while read line; do if [ -d "$line/A" ]; then rm -rf "$line"; fi; done

 

"Sprawdź każdy folder w aktualnym katalogu i jeśli jest w nim podfolder "A" to usuń cały folder"

Wykonujesz spod /opt/apps.

Edytowano przez Archi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A to co ty zaproponowałeś nie zadziała dla folderów ze spacjami, np. /opt/apps/moj folder :D.

 

Zadziała.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrys

Fakt, zadziała nawet w katalogach ze spacjami, ale jeżeli zostanie spełniony pewny warunek:

root@h:~# rmdir --help
Usage: rmdir [OPTION]... DIRECTORY...
Remove the DIRECTORY(ies), if they are empty.

 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

A to co ty zaproponowałeś nie zadziała dla folderów ze spacjami, np. /opt/apps/moj folder :D.

 

Chwilę siedzę w bashu :).

 

W przykładzie nie było folderów ze spacjami :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość
Temat jest zablokowany i nie można w nim pisać.
Zaloguj się, aby obserwować  

×