Frage Verschieben von Verzeichnissen


Wenn ich das benutze cp Befehl, um ein Verzeichnis A in das Innere von Verzeichnis B zu kopieren, verdoppelt es die Menge an Speicherplatz, die es belegt (Verzeichnis A + kopierte Version von Verzeichnis A)? Ich kann mir nicht vorstellen, dass das der Fall wäre, aber würde es die Nachschlagzeit auf der Festplatte für die Dateien in diesem Verzeichnis stören?

Ich bin ein Anfänger, also tut es mir leid, wenn diese Frage keinen Sinn macht.


4
2017-08-05 13:45


Ursprung




Antworten:


cp kopiert Dateien. Wenn Sie ein Verzeichnis angeben (das habe ich noch nie getestet), würde es wahrscheinlich den Inhalt dieses Verzeichnisses kopieren und alle (einschließlich des ursprünglichen Ordners) in das Zielverzeichnis kopieren. Ja, es wird zwei Kopien der Zieldatei (en) erstellen und ja, es wird wahrscheinlich eine Reihe von Dingen wie dieser stören.

Sie können Dateien einfach in Nautilus ziehen und ablegen, um sie auf natürliche Weise zu verschieben, ohne die negativen Auswirkungen auf die Festplattenoptimierung. Das mv Befehl im Terminal wird das gleiche tun. Es ist vergleichbar mit dem cp-Befehl:

mv </oldlocation/target> </newlocation/destination/>

Wenn das Ziel eine Datei oder ein Verzeichnis ist und das Ziel ein Verzeichnis ist.

HINWEIS: Wenn Sie verwenden mv </location/filenameA> <location/filenameB> Es wird die Datei umbenennen. Beispielsweise,

mv /etc/x11/xorg.conf /etc/x11/xorg.conf.backup

wird das umbenennen xorg.conf Textdatei an xorg.conf.backup. Versuchen Sie eine Google-Suche nach nützlichen Linux-Kommandozeilen-Tools.

Ein weiterer netter Trick in der Befehlszeile ist die Verwendung der Option "man". Beispielsweise

mv man

oder

sudo man

Der "Mann" steht für manuell. Jede Terminal-Anwendung enthält ein Handbuch, das die Art der Anwendung, alle Optionen und Definitionen für alles beschreibt. Sie können die man-Option mit jedem Terminalbefehl ausführen, den Sie installieren.


2
2017-08-05 14:05



Richtig, ich verstehe das. Ich denke, die Art und Weise, wie ich die Frage formuliert haben sollte, ist, dass wenn ich ein Verzeichnis kopiere, das nur einen anderen Zeiger auf die Dateien erstellen wird (ich nehme sequentiell auf der Festplatte an) oder wird tatsächlich brennen ein anderes Verzeichnis Ein großer Speicherplatz auf der Festplatte, oder schrauben Sie sich mit der Art und Weise, wie es schlecht aussieht. Wie ich schon sagte, ich bin sehr noob, und vielleicht ist dies eine zu komplizierte Frage für mich, um die Antwort zu verstehen, ohne viel mehr Forschung zu tun. - RyanGC
Schauen Sie sich einige Videos oder Artikel über google / youtube an, wie das Linux-Dateisystem funktioniert. Es ist SEHR anders als in Windows, es ist wirklich faszinierend. Linux schreibt die Festplatte physikalisch ganz am Anfang jedes HDD-Streifens und setzt mit der nächsten Codierung fort, wenn noch Platz vorhanden ist, und fügt den Rest dem nächsten Streifen hinzu und so weiter. Es ist viel schneller beim Dateizugriff als Windows aus diesem Grund. Außerdem werden Dateien digital und nicht physisch zugeordnet. Dateien werden nicht wie in Windows verschoben. Sie müssen unter Linux nie defragmentieren. - Alex
Wenn du benutzt cp Um ein Verzeichnis zu kopieren, wird ein Hinweis ausgegeben, dass das Verzeichnis ignoriert wird und nichts unternommen wird. Sie müssen verwenden -r (oder besser, -a (um einige andere Attribute zu erhalten), um ein Verzeichnis zu kopieren, während es die Rekursion einleitet (Eingabe eines Verzeichnisses, um seinen Inhalt zu kopieren). - thomasrutter


Der Befehl move in Linux ist mv, sehen mv --help Für mehr Information

Dadurch werden das Verzeichnis und alle Unterverzeichnisse verschoben

mv -f dir1 /destinationDir

Dieser Umzug Dateien von dir1 zu dir2

mv -f dir1/* dir2

2
2017-08-05 13:56



Richtig, aber ich möchte das genaue Verzeichnis in einem anderen Verzeichnis haben. - RyanGC


Hinzufügen einer Antwort, weil dies mein erstes Suchergebnis in Google war und es nicht viele gründliche Antworten auf den mv-Befehl gab, und welche Verknüpfung auf jeder Detailstufe bedeutet.

cp - Kopien. Es wird standardmäßig eine identische Kopie erstellen, die den gleichen Platz einnimmt, obwohl Sie cp anweisen können, harte Links (Zeiger auf jede Datei) mit der Option -l zu erstellen.

Wenn Sie eine Kopie eines Ordners erstellen möchten, tun Sie Folgendes:

cp -a source dest

Wo -a bedeutet ein "Archiv" oder eine identische Kopie, einschließlich Ordner und Links. Sie können es für -r austauschen, wenn Sie Ordner, aber keine Links kopieren möchten.

Wenn Sie eine Kopie mit Links zu den Originaldateien erstellen möchten (das Ändern des Originals ändert auch die Kopie und nimmt viel weniger Platz in Anspruch), führen Sie Folgendes aus:

cp -l source dest

ln - Links. Es wird nur eine Verbindung hergestellt, Sie können es auf Ihr Ziel zeigen, und es wird nur den Platz einnehmen, den es braucht, um darauf zu zeigen.

Wenn Sie einen einzelnen Link zu einem Ordner erstellen möchten, tun Sie Folgendes:

ln -s source dest

Hinweis: -s bedeutet "symbolische" Verknüpfung. Weil ln harte oder weiche (die meisten nennen dies "symbolische") Links erstellen kann. Hardlinks können nur auf Dateien verweisen und haben andere Einschränkungen, während symbolische Links auf alles verweisen können, einschließlich Ordner. Für einen vollständigen Artikel über die Unterschiede zwischen harten und weichen Links siehe diesen großartigen Artikel Hier.

mv - verschiebt Dateien oder Ordner.

Um Ordner (oder Dateien) zu verschieben, tun Sie Folgendes:

mv source dest

0
2017-09-04 01:42



Es kann erwähnenswert sein, dass ohne -r oder -a, cp wird nur Dateien kopieren (das heißt, source muss eine Datei sein) und Verzeichnisse ignorieren. - thomasrutter
Danke mein Herr! :) - Nick Steele
cp -a behält auch Eigentümer und Gruppen-IDs, denke ich. - WinEunuuchs2Unix