Chciałbym wiedzieć, jak przenieść wszystkie pliki z folderu do innego folderu za pomocą wiersza polecenia.
Powiedzmy, że jestem w folderze Pobrane, a jest 100 plików, które chciałbym przenieść do folderu Wideo, bez konieczności zapisywania wszystkich nazw plików.
command-line
Michael
źródło
źródło
files
ale ludzie pokazują ci, jak się poruszać nie tylko,files
alefolders
także. Czy to w porządku?Odpowiedzi:
Otwórz terminal i wykonaj następujące polecenie:
Przeniesie wszystkie pliki i foldery z folderu Pobrane do folderu Wideo.
Aby przenieść wszystkie pliki, ale nie foldery:
Jeśli chcesz przenieść wszystkie pliki (ale nie foldery) z folderu Pobrane do folderu Wideo, użyj tego polecenia
Aby przenieść tylko pliki z folderów pobierania, ale nie z podfolderów:
Jeśli chcesz przenieść wszystkie pliki z folderu Pobrane, ale żadnych plików w folderach w folderze Pobrane, użyj tego polecenia:
tutaj
-maxdepth
opcja określa, jak głębokie próbować powinno się znaleźć,1
oznacza to tylko katalog określony w poleceniu find. Możesz spróbować użyć2
,3
również do testowania.Zobacz stronę podręcznika użytkownika Ubuntu, aby uzyskać szczegółowe wyjaśnienie
źródło
-print0 | xargs -0 mv -t ~/Videos
może być bardziej efektywnie zrobić z-exec mv -t ~/Videos \{\} \+
:-)mv -v ~/Downloads/* ~/Videos/
nie działa w przypadku ukrytych plikówPrzeniesie wszystkie pliki, w tym podfoldery, do katalogu, który chcesz
mv
. Jeśli chceszcp
(skopiować) lubrm
(usunąć), będziesz potrzebować opcji-r
(rekurencyjnej), aby dołączyć podfoldery.źródło
mv
nie potrzebuje opcji rekurencyjnej, aby uwzględnić podfoldery. Można go również użyć do zmiany nazwy.W prostym przypadku:
Jeśli chcesz również przenieść pliki kropkowe (ukryte), ustaw opcję powłoki dotglob .
To pozostawia zestaw opcji powłoki.
Aby jednorazowo użyć dotglob, uruchom polecenia w podpowłoce:
źródło
(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
tylko porusza (cięcia) treść (w tym ukrytych plików). W takim przypadku zarówno folder źródłowy, jak i docelowy muszą już istnieć. Na koniec katalog źródłowy staje się pusty.Jest to możliwe przy użyciu
rsync
, na przykład:gdzie:
Jeśli masz uprawnienia administratora, przedrostek z
sudo
zastąpi potencjalne problemy z uprawnieniami.źródło
Posługiwać się
Mam nadzieję, że to pomoże. Ponieważ odczuwałem ten sam ból i traciłem dużo czasu na naprawę mojego błędu.
źródło
Aby przenieść katalog z zawartością lub bez do nowej nazwy, tak jak w przypadku
mv
polecenia zmieniającego nazwę pliku:mv -T dir1 dir2
gdzie:
-T
traktuje miejsce docelowe jako zwykły plikdir1
to oryginalna nazwa katalogudir2
to nowa nazwa kataloguNB:
dir2
nie musi istnieć.Mam nadzieję, że zaoszczędzi to komuś dużo czasu, ponieważ noob, wcześniej utworzyłem katalog z nową nazwą, a następnie przeniosłem zawartość katalogu do wcześniej utworzonego katalogu.
Użyj dla podkatalogów
To polecenie jest przydatne, gdy wiele plików zostało zapisanych w podfolderze katalogu docelowego, tj
Downloads/mp4
. W tym przykładzie uruchomieniemv -T Downloads/mp4 Videos
spowoduje usunięciemp4
podfolderu i przeniesienie wszystkich zawartych w nim plików do folderu Wideo.źródło
dir1
usunięcie. Oprócz tego środka ostrożności w odpowiedzi odnotowano coś dobrego do codziennego użytku.mv fileA fileB
ale-T
flaga w tym przypadku traktuje katalog docelowy / jako plik i zmienia jego nazwę.cd folderNamehere
pwd
. Spowoduje to wydrukowanie katalogu, który chcesz przenieść.cd folderNamehere
mv *.* typeAnswerFromStep2here
To przeniesie wszystkie pliki z tego katalogu do drugiego.
źródło
foo.txt
,bar.
abar
zarównobar.
ibar
nie zostaną przeniesione. Używanie*
zamiast*.*
zajmuje się tym. Ale w obu przypadkach ukryte pliki, takie jak:.foobar
nie zostaną przeniesione.tutaj musisz podać ukośnik i
*
po ścieżce źródłowej, aby zabrał pliki do ścieżki_źródłowej zamiast do pełnego katalogu źródłowego.Przykład:
mv /home/username/test/* /home/username/test2/
Powyższe polecenie przenosi wszystkie pliki (chyba że są ukryte) z katalogu źródłowego do katalogu docelowego.
źródło
Spróbuj
-type z argumentem -type możesz podać typ file.on tej instrukcji, która jest średnim plikiem. if, używając -d oznacza katalog.
-iname: najczęstszą i najbardziej oczywistą metodą wyszukiwania pliku jest użycie jego argumentu -name. jeśli nie masz pewności co do wielkości liter, możesz użyć argumentu -iname
mv {} i na koniec określić katalog docelowy, a następnie przenieść tam pliki za pomocą argumentu mv {}
źródło