Dla przykladu rozpakowujemy 500 plików ZIP w danym folderze. Wszystkie pliki, które były w tych archiwach rozpakowują się (każdy z nich) do odrębnego folderu.
I jak tutaj szybko przenieść wszystkie te pliki do nadrzędnego folderu? Przenoszenie folder po folderze to żmudna praca, która zajmie nam 1-2h…
W Linux wystarczy jedna komenda:
1 |
find . -type f -print0 | xargs -0 mv -t . |
Nic innego jak znajdujemy (w miejscu gdzie wywołamy tę komendę) zasoby dyskowe, które są plikami (flaga: -type f
) i wydrukuwujemy to na ekranie (flaga -print0
).
Następnie za pomocą pipe wykonujemy na wynikach tej komendy operację przeniesienia. Flagą -t
wskazkujemy target czyli folder docelowy. W tym przypadku .
czyli kropkę – tzn. dany folder.
Możemy tutaj zastosować pełną ścieżkę do danego folderu.
Potem dla higieny 😉 Możemy usunąć 1 komendą wszystkie puste foldery:
1 |
find . -type d -empty -delete |