Mam dużą liczbę małych plików, f, ułożonych w strukturę katalogów w następujący sposób:
/A/B/C/f
Istnieje 11 katalogów na poziomie A, każdy z około 100 katalogami na poziomie B, każdy z około 30 katalogami na poziomie C, każdy z jednym plikiem f.
Jak przenieść wszystkie pliki o jeden poziom wyżej? Na przykład, biorąc pod uwagę ten zestaw plików ...
/ A / B / C / f1
/ A / B / C / f2
/ A / B / C / f3
/ A / B / C / f4
Chcę, aby katalog /A/B/
zawierał 4 pliki, od f1 do f4. Usunięcie katalogów C nie jest konieczne.
Mam nadzieję, że jest to rozwiązanie problemu, ewentualnie z udziałem find
, xargs
i whatnot
. Jakieś pomysły?
Twoje zdrowie,
James
Moje pierwsze przypuszczenie to
tak długo, jak nie określisz
-depth
, powinno być w porządku. NIE próbowałem tego, więc przetestuj go najpierw, zanim się na to zgodzisz.źródło
mv
Polecenia są wykonywane w bieżącym katalogu, więc..
nie robi tego, na co masz nadzieję. Zobacz moją odpowiedź na rozwiązania. @ jl6: powłoka nie ma nic wspólnego z..
tym, co obsługuje jądro.Jeśli chcesz tylko do przenoszenia plików, które są w katalogach liści (czyli nie chcesz, aby przejść
/A/B/file
do/A
jeżeliB
zawiera podkatalogi), to oto kilka sposobów, aby to zrobić:Oba tego wymagają
Ten działa:
Będzie to szybsze, ale nie lubi pustych katalogów źródłowych:
źródło