Cofnij przenoszenie plików podpoziomów bez ich katalogów do pojedynczego płaskiego katalogu

0

Ogólna konfiguracja

-root-dir<br>
---dir-tar<br>
---file<br>
---dir<br>
------dir<br>
------file<br>
---dir<br>
------dir<br>
------fil<br>

Polecenie, które wykonałem:

find ./dir -type f -iname "*" -exec mv {} --target-directory=dir-tar /;

Byłem w root-dir (uwaga: katalog-tar znajduje się w katalogu root-katalog)

Problem

Nie przeniesiono żadnych podkatalogów. Wszystkie pliki są teraz wymienione dir-tarbez podkatalogów (w zasadzie niezorganizowany bałagan!)

Każda pomoc jest doceniana. Czy są jakieś informacje o tym, co poszło gdzie? Próbowałem ls -lrtspojrzeć na daty lub godziny, ale nie ma prawdziwego wzorca, aby je złożyć.

Każda pomoc jest mile widziana. Dzięki.

składnia
źródło
Czy masz jakieś archiwum, choć nieaktualne? To dałoby ci strukturę katalogów. Być może będziesz w stanie napisać scenariusz w większości przypadków cofnięcia, pozostawiając tylko kilka przypadków, na które musisz przyjrzeć się ręcznie.
Nicole Hamilton,

Odpowiedzi:

1

Cóż, find zrobił to, o co prosiłeś. Znalazł każdy plik i przeniósł każdy plik. Chyba, że ​​masz jakieś odniesienie (kopia zapasowa, archiwum). Uważam, że przywrócenie oryginalnej struktury jest prawie niemożliwe, ponieważ o ile wiem, systemy plików nie mają opcji odwrotnej do przenoszenia plików.

W przyszłości rozsądne może być przygotowanie „echa” polecenia, aby zobaczyć, co się stanie przed jego wykonaniem. W tym konkretnym przypadku to, co chciałeś zrobić, można osiągnąć za pomocą mv dir/* tar-dir:

find /path -type d -maxlevel 1 -exec -->echo<-- mv {} /dest/ \;
Ярослав Рахматуллин
źródło
Cześć Dzięki ... (wracam do tego postu trochę późno).
składnia
@syntax, witamy w SU! Chociaż podziękowania są zawsze mile widziane, sposobem podziękowania dla osób w sieci SE jest głosowanie za odpowiedzią.
terdon
Proste i łatwe, jeśli zbyt skomplikowane, zrób sobie przerwę: również dzięki za echo (@terdon zostałem przerwany, robię to teraz)
składnia