Tak naprawdę nie przetestowałem tego pod kątem niezawodności ani niczego, ale próbowałeś po prostu wpisać to polecenie z folderu A w terminalu mv */* .:?
co oznacza „znajdź wszystkie pliki w tym katalogu i jego podkatalogach i uruchom mv z katalogiem docelowym. dla każdego znalezionego pliku przenieś je do bieżącego katalogu.
David, twoja wersja działa, dopóki nie osiągniesz limitu maksymalnej długości wiersza poleceń, co nie jest trudne, biorąc pod uwagę, jak find wypisuje ścieżki, szczególnie w przypadku, gdy wywołujesz go z katalogu innego niż A, jak w twoim przykładzie.
To jest bardzo niebezpieczne. jeśli masz pliki o tej samej nazwie w różnych podfolderach, zastąpisz je ostatnim znalezieniem. Lepiej używać mv z --backup = numerowane:find . -mindepth 2 -type f -print -exec mv --backup=numbered {} . \;
Cóż, możesz utworzyć plik i nazwać go „cutme” (aby utworzyć plik o nazwie cutme w typie terminala nano cutme. Aby go zapisać, naciśnij na przykład CTRL + X, a następnie naciśnij ENTER) i wklej w nim następujące elementy, zakładając, że:
Chcesz to zrobić rekurencyjnie (w podfolderach i podfolderach tych podfolderów)
Chcesz pominąć przenoszenie pliku skryptu
Masz uprawnienia do przenoszenia plików w tym folderze
Pliki mogą zawierać spacje w swoich nazwach
find * -type f -print -not -type d -and -not -regex 'cutme' -exec mv {} .. \;
Zanotuj nazwę cutme w linii. Powinien być taki sam jak skrypt, który uruchomisz.
Po utworzeniu pliku i wklejeniu powyższego wiersza uruchom następujące polecenie w tym samym folderze co skrypt:
chmod +x cutme. To daje nowy plik flagę „wykonywalny”, dzięki czemu można wykonać go tak: ./cutme.
Uruchomiłbyś skrypt z folderu. Każdy plik w nim, jeśli jest w podfolderze lub nie, zostanie przeniesiony do folderu nadrzędnego folderu. Folder nadrzędny tutaj jest nadrzędny w stosunku do miejsca, w którym znajduje się skrypt. Właściwie zmieniając ostatnie 2 kropki, możesz powiedzieć, gdzie przenieść wszystkie pliki do folderu, w którym uruchamiasz skrypt.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.
mv */* .
:?