Möchte Dateien kopieren, aber "ohne Inhalt"

Schnitzel2k8

Active member
Themenstarter
Registriert
10 Jan. 2008
Beiträge
2.346
Hi,

ich arbeite zwar gerne mit der Konsole, steh aber momentan auf dem Schlauch, wie ich das folgende bewerkstelligen soll. Ich möchte eine Liste von Dateien kopieren. Allerdings brauche ich nicht den "Inhalt" der Dateien. Möchte also alle Dateinamen identisch in einem neuen Verzeichnis erzeugen, aber als leere Dateien. Hintergrund ist grob, daß es um sehr große Dateien auf nem kleinen Medium geht, wo ich dann noch weitere Dateien hinkopieren möchte und durch die bereits existierenden Dateien mir ersparen will etwas doppelt zu sammeln.

Hoffe mein Wunsch war verständlich. Danke schonmal. Wahrscheinlich gehts ganz einfach, aber ich komm nicht drauf.
 
Mit dem Totalcommander kann man Ordnerinhalte vergleichen.
Vielleicht hilft dir das?
 
Geht garantiert irgendwie, können dir die Linux-Cracks ja morgen mal schnell zusammenschreiben.
Ich würde irgendwas mit einer Schleife probieren:
Code:
for file in $(ls /abc/*); do touch /xyz/$file; done
 
Zuletzt bearbeitet:
Fehlt da nicht noch eine Klammer?

Probleme könnte bei diesem Befehl mit Dateinamen aus mehreren Wörtern bestehend geben.
 
Mit dem Totalcommander kann man Ordnerinhalte vergleichen.
Vielleicht hilft dir das?
Hmmm... Schnitzel möchte die Dateien ja leer erstellen und nicht synchronisieren. Von daher denke ich, dass es mit dem Total Commander nicht funktioniert (mit Vorbehalt).
 
Das lässt sich auch mit "find" bewerkstelligen. Ist in der Regel eleganter und auch mächtiger als ein "ls" mit for-Schleife. Man benutze dafür die Option -exec von find - natürlich in Verbindung mit touch.
 
Total Commander ist Windows only.

@TE: cd <ins neue Verzeichnis> && find <Pfad zu den Originaldateien* -printf "%f\n" |xargs touch
 
Danke schonmal für alle Antworten. Ich kann es Morgen erst testen. Im übrigen hätte ich noch etwas genauer sein sollen. Die leeren Dateien sollen sozusagen auf nen USB-Stick, also ein Medium, daß ich vom Rechner abkoppeln kann, da der Vergleich an nem anderen Rechner erfolgt.
 
Hier, das sollte auch mit Unterordnern klappen, nicht schön aber selten ;)

Code:
IFS=$'\n'; for f in `find . -name '*'`; do if [ -d $f ]; then mkdir <ziel>/$f; else touch <ziel>/$f; fi; done
 
Okay, dann geht's also Medienübergreifend - ergo: hard links sind da keine Option.

Ist das denn eine verschachtelte ordnerstruktur? Oder sind die Dateien alle im gleichen Verzeichnis?
 
Die Dateien sind glücklicherweise alle in einem Verzeichnis. Sind nur leider viele und auch sehr groß, zu groß für die vorhandenen Medien.
 
Wenn die alle in einem Verzeichnis sind, reicht eine ganz einfache schleife über das "ls" Kommando, wie sie gru3n3r gepostet hat.
 
So, habs hinbekommen. Die Lösung von gru3n3r hat leider wie Mornsgrans schon angedeutet hat nicht für Dateien mit Leerzeichen geklappt. Hätte wohl selbst drauf hinweisen sollen, daß solche Dateien dabei sind. Die Lösung von r3v1l hats dann geschafft. Nochmals Vielen Dank an alle.
 
  • ok1.de
  • thinkstore24.de
  • ok2.de - Notebook Computer Server
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben