Jak przenieść pliki i katalogi do folderu nadrzędnego w Linuksie?
W systemie Linux (Ubuntu), jak przenieść wszystkie pliki i katalogi do katalogu nadrzędnego?
W systemie Linux (Ubuntu), jak przenieść wszystkie pliki i katalogi do katalogu nadrzędnego?
Przyszedłem tutaj, ponieważ jestem nowy w tym temacie, jak również. Z jakiegoś powodu powyższy sposób nie zadziałał dla mnie. To co zrobiłem, aby przenieść wszystkie pliki z dir do jego rodzica było:
cd to/the/dir
mv * ../
Wpisz to w powłoce:
mv *.* ..
To przeniesie WSZYSTKIE pliki o jeden poziom wyżej.
Znak *
jest symbolem wieloznacznym. Zatem *.deb
przeniesie wszystkie pliki .deb, a Zeitgeist.*
przeniesie Zeitgeist.avi i Zeitgeist.srt o jeden folder wyżej, ponieważ, oczywiście, ..
wskazuje katalog nadrzędny.
Aby przenieść wszystko, łącznie z folderami, etc, po prostu użyj *
zamiast *.*
Nie może być nic prostszego niż:
mv * ../
Aby przenieść również ukryte pliki:
mv /path/subfolder/{.,}* /path/
mv
to polecenie przenoszenia plików, *
oznacza wszystkie pliki i foldery, a ../
to ścieżka do katalogu nadrzędnego.
W bashu możesz użyć* shopt -s dotglob** aby dopasować wszystkie pliki i przenieść je po prostu przez
shopt -s dotglob; mv * ..
To nie jest najlepsze rozwiązanie, ponieważ ustawienie jest stałe dla powłoki dopóki nie zmienisz go przez
shopt -u dotglob
ale myślę, że dobrze jest wiedzieć.
Metoda, która nie powoduje żadnych 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 wariantu powyższego, aby przenieść wszystkie pliki z podfolderów do folderu nadrzędnego.
Miałem dane w folderach według roku, ale odkryłem, że używając metadanych mogę mieć je wszystkie w tym samym folderze, co ułatwiło zarządzanie.
np.
/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
```.
Nie ma potrzeby zmieniać katalogów. Wystarczy dołączyć na końcu ścieżki:
mv /my/folder/child/* /my/folder/
Powyższe przenosi tylko pliki nie ukryte. Aby przenieść tylko ukryte pliki użyj .*
mv /my/folder/child/.* /my/folder/
Powyższe dwa polecenia można połączyć w jedno:
mv /my/folder/child/{.,}* /my/folder/
Zobacz również Jak przenieść wszystkie pliki, w tym pliki ukryte do katalogu nadrzędnego za pomocą
Zakładając, że wszystkie twoje ukryte pliki zaczynają się od kropki, po której następuje litera lub liczba (co powinno mieć miejsce), możesz użyć
mv * .[A-Za-z0-9]* ..
Część .[A-Za-z0-9]*
jest po to, aby upewnić się, że nie próbujesz przesunąć .
lub ..
wzdłuż, co by się nie udało.
To proste, aby przenieść wszystkie pliki i foldery do katalogu nadrzędnego w Linuksie.
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).