Odpowiedzi:
odnaleźć . -maxdepth 1 -exec mv {} .. \;
spowoduje to również przeniesienie ukrytych plików.
Otrzymasz wiadomość:
mv: nie można przenieść `. ' na `../. ': Urządzenie lub zasób zajęty
kiedy próbuje się przenieść .
(bieżący katalog), ale to nie spowoduje żadnej szkody.
-maxdepth 1
się upewnić.
Przyjechałem tutaj, ponieważ jestem również nowy w tym temacie. Z jakiegoś powodu powyższe nie zadziałało dla mnie. Aby przenieść wszystkie pliki z katalogu do katalogu nadrzędnego, wykonałem:
cd to/the/dir
mv * ../
(cd ${ANDROID_NDK_HOME}/android-ndk-r14b/ && mv * ../)
Wpisz to w powłoce:
mv *.* ..
To przenosi WSZYSTKIE pliki o jeden poziom wyżej.
Postać *
jest symbolem wieloznacznym. Tak więc *.deb
przeniesie wszystkie pliki .deb i Zeitgeist.*
przeniesie Zeitgeist.avi i Zeitgeist.srt o jeden folder w górę, ponieważ, oczywiście, ..
wskazuje katalog nadrzędny.
Aby przenieść wszystko, w tym foldery itp., Po prostu użyj *
zamiast*.*
*
nie *.*
obejmuje katalogów
Nie może być prostsze niż:
mv * ../
Aby przenieść również ukryte pliki:
mv /path/subfolder/{.,}* /path/
mv
to polecenie do przenoszenia plików, *
oznacza wszystkie pliki i foldery i ../
jest ścieżką do katalogu nadrzędnego.
W bashu można użyć shopt -s dotglob zrobić * meczu wszystkie pliki i przenieść je po prostu
shopt -s dotglob; mv * ..
To nie jest najlepsze rozwiązanie, ponieważ ustawienie jest stałe dla powłoki, dopóki jej nie zmienisz
shopt -u dotglob
ale myślę, że dobrze wiedzieć.
(shopt -s dotglob && mv * ..)
. W ten sposób opcja jest lokalna tylko dla tej podpowłoki.
Metoda, która nie powoduje błędów i działa za każdym razem:
ls -1A . | while read -r file
do
mv "./${file}" ..
done
find . -maxdepth 2 -type f -exec mv {} .. \;
Użyłem odmiany powyżej, aby przenieść wszystkie pliki z podfolderów do elementu nadrzędnego.
Mam dane w folderach z roku na rok, ale dzięki metadanych mogłem mieć je wszystkie w tym samym folderze, co ułatwiło zarządzanie.
na przykład.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
W Linuksie łatwo jest przenieść wszystkie pliki i foldery do katalogu nadrzędnego.
Przejdź do tego folderu i użyj tego polecenia:
mv * /the full path
Na przykład jeśli twoje pliki i foldery są następujące:
/home/abcuser/test/1.txt
2.txt
3.jpg
4.php
1folder
2folder
Przejdź do tego folderu przez cd:
cd /home/abcuser/test
mv * /home/abcuser
Wszystkie twoje pliki i foldery zostaną przeniesione do folderu abcuser (katalog nadrzędny).
/the full path
nie działa w systemie Linux, musisz uciec spacjami /the\ full\ path
.
Nie ma potrzeby zmiany katalogów. Wystarczy dołączyć * na końcu ścieżki:
mv /my/folder/child/* /my/folder/
Powyżej przenosi tylko nie ukryte pliki. Aby przenieść tylko ukryte pliki, użyj. *
mv /my/folder/child/.* /my/folder/
Powyższe dwa można połączyć w jedno polecenie:
mv /my/folder/child/{.,}* /my/folder/
Zobacz także: Jak przenieść wszystkie pliki, w tym pliki ukryte, do katalogu nadrzędnego za pomocą *
przejdź do podkatalogu i wykonaj następujące polecenie, aby skopiować lub przenieść pliki.
np .: a to katalog nadrzędny, a b to podkatalog, chcemy przenieść / skopiować wszystkie pliki z b do a (podkatalog do katalogu nadrzędnego).
cd b
cp * ..
mv * ..