2009-12-27 17:25:21 +0000 2009-12-27 17:25:21 +0000
84
84
Advertisement

Wie verschiebe ich unter Linux Dateien und Verzeichnisse in den übergeordneten Ordner?

Advertisement

Wie verschieben Sie unter Linux (Ubuntu) alle Dateien und Verzeichnisse in das übergeordnete Verzeichnis?

Advertisement
Advertisement

Antworten (12)

96
96
96
2013-01-26 20:20:56 +0000

Ich bin hierher gekommen, weil ich auch neu in diesem Thema bin. Aus irgendeinem Grund hat das obige bei mir nicht geklappt. Was ich getan habe, um alle Dateien aus einem Verzeichnis in das übergeordnete Verzeichnis zu verschieben, war:

cd to/the/dir
mv * ../
72
72
72
2009-12-27 17:29:43 +0000
find . -maxdepth 1 -exec mv {} .. \;

damit werden auch versteckte Dateien verschoben.

Sie werden die Meldung erhalten:

mv: cannot move `.' to `../.': Device or resource busy

, wenn es versucht, . (aktuelles Verzeichnis) zu verschieben, aber das wird keinen Schaden anrichten.

10
Advertisement
10
10
2009-12-27 17:27:56 +0000
Advertisement

Geben Sie in der Shell Folgendes ein:

mv *.* ..

Das verschiebt ALLE Dateien eine Ebene nach oben.

Das Zeichen * ist ein Platzhalter. *.deb verschiebt also alle .deb-Dateien, und Zeitgeist.* verschiebt Zeitgeist.avi und Zeitgeist.srt einen Ordner nach oben, da .. natürlich das übergeordnete Verzeichnis angibt.

Um alles einschließlich der Ordner usw. zu verschieben, verwenden Sie einfach * anstelle von *.*

6
6
6
2014-07-16 18:50:24 +0000

Es kann nicht einfacher sein als:

mv * ../

Um auch versteckte Dateien zu verschieben:

mv /path/subfolder/{.,}* /path/

mv ist ein Befehl zum Verschieben von Dateien, * bedeutet alle Dateien und Ordner und ../ ist der Pfad zum übergeordneten Verzeichnis.

2
Advertisement
2
2
2011-01-25 21:33:46 +0000
Advertisement

In der Bash können Sie* shopt -s dotglob** verwenden, um * alle Dateien abzugleichen und sie einfach durch

shopt -s dotglob; mv * ..

zu verschieben. Dies ist nicht die beste Lösung, da die Einstellung für die Shell permanent ist, bis Sie sie durch

shopt -u dotglob

ändern, aber ich denke, es ist gut zu wissen.

1
1
1
2012-07-25 20:15:46 +0000

Eine Methode, die keine Fehler verursacht und jedes Mal funktioniert:

ls -1A . | while read -r file                                                    
do                                                                                  
    mv "./${file}" ..                                                            
done
1
Advertisement
1
1
2014-07-16 18:37:18 +0000
Advertisement
find . -maxdepth 2 -type f -exec mv {} .. \;

Ich habe eine Variation von oben verwendet, um alle Dateien aus Unterordnern in den übergeordneten Ordner zu verschieben.

Ich hatte die Daten in Ordnern nach Jahren geordnet, fand aber durch die Verwendung von Metadaten heraus, dass ich sie alle im selben Ordner haben konnte, was die Verwaltung vereinfachte.

z. B.

/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
0
0
0
2016-04-11 04:38:26 +0000

Es ist nicht notwendig, Verzeichnisse zu ändern. Fügen Sie einfach * am Ende des Pfades ein:

mv /my/folder/child/* /my/folder/

Obiges verschiebt nur nicht versteckte Dateien. Um nur versteckte Dateien zu verschieben, verwenden Sie .*

mv /my/folder/child/.* /my/folder/

Die beiden obigen Befehle können zu einem einzigen kombiniert werden:

mv /my/folder/child/{.,}* /my/folder/

Siehe auch Wie man alle Dateien einschließlich versteckter Dateien in das übergeordnete Verzeichnis mit * verschiebt

0
Advertisement
0
0
2018-12-13 14:22:48 +0000
Advertisement
find -type f|while read line; do mv $line ${line##*/}; done
0
0
0
2009-12-27 17:48:32 +0000

Angenommen, alle Ihre versteckten Dateien beginnen mit einem Punkt, gefolgt von einem Buchstaben oder einer Zahl (was sie sollten), könnten Sie

mv * .[A-Za-z0-9]* ..

verwenden. Der Teil .[A-Za-z0-9]* soll sicherstellen, dass Sie nicht versuchen, . oder .. zu verschieben, was fehlschlagen würde.

0
0
0
2011-11-03 11:39:25 +0000

Es ist einfach, unter Linux alle Dateien und Ordner in das übergeordnete Verzeichnis zu verschieben.

Gehen Sie zu diesem Ordner und verwenden Sie diesen Befehl:

mv * /the full path

Wenn Ihre Dateien und Ordner z. B. wie folgt sind:

/home/abcuser/test/1.txt 
                   2.txt
                   3.jpg
                   4.php
                   1folder
                   2folder

Gehen Sie mit cd in diesen Ordner:

cd /home/abcuser/test
mv * /home/abcuser

Alle Ihre Dateien und Ordner werden in den Ordner abcuser (übergeordnetes Verzeichnis) verschoben.

-1
-1
-1
2016-05-20 06:32:28 +0000

Wechseln Sie in das Unterverzeichnis und führen Sie den folgenden Befehl zum Kopieren oder Verschieben von Dateien aus.

z. B.: a ist das übergeordnete Verzeichnis und b ist das Unterverzeichnis, wir wollen alle Dateien von b nach a (Unterverzeichnis nach übergeordnetem Verzeichnis) verschieben/kopieren.

cd b
cp * ..
mv * ..
Advertisement

Verwandte Fragen

6
10
5
37
3
Advertisement