staging.inyokaproject.org

cp --preserve=links mag nicht

Status: Gelöst | Ubuntu-Version: Kubuntu 24.04 (Noble Numbat)
Antworten |

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17630

CarstenHa schrieb:

--preserve=links ist laut Manpage 'cp' für Hardlinks und die werden bei Kopiervorgängen über Dateisystemgrenzen nicht berücksichtigt (bzw. sind nicht möglich). Siehe: ln (Abschnitt „Hardlinks“)

Ein Hardlink kann es aber nicht sein, denn ein Hardlink wird nie als x → y/z dargestellt. Bei Hardlinks gibt es kein Original, sondern alle Hardlinks weisen auf die gleichen Daten, auf den gleichen Inode. Hardlinks können auch nicht über Partitionsgrenzen hinweg erstellt werden.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17630

michahe schrieb:

Danke user_unknown,

es handelt sich um zwei SSD von PCs, der entfernte PCalt wird via fstab und mount-Befehl eingebunden. Alle Datei(en) im Verzeichnis (deshalb /.) sollen von PCneu nach PCalt kopiert werden.

Der Punkt ist Kürzel für das Verzeichnis selbst. Manche Programme erwarten als Parameter einen Datei- oder Verzeichnisnamen. Damit man dann nicht immer den womöglich langen Pfadnamen zum aktuellen Ordner angeben muss, oder $(pwd) oder $PWD gibt es den Punkt als Abkürzung.

Wenn Du schon den ganzen Pfad hast, wie /mnt/Daten', dann ist das Anhängen von '/.' keine Abkürzung, sondern ein Umweg. Die Erfinder der Abkürzung würden sich im Grab umdrehen, wenn sie schon tot wären.

PCneu hat in diesem Verzeichnis 11 Dateien, 10 werden kopiert, der Link nicht. PCneu und PCalt haben beide ein Verzeichnis /mnt/Daten. Am PCneu verweist /media/PCalt auf /mnt/Daten von PCalt.

Ja, jetzt heißt es plötzlich /media/PCalt. Erst hieß es /media/ZielPC.

2024.pdf → /mnt/Daten/Biblio/2024.pdf ... # 10 andere Dateien}}}

Die Apostroph-Zeichen habe ich eingefügt, weil es fallweise Verzeichnis- oder Dateiname mit Leerzeichen gibt.

Keine gute Idee. Aber wenn Du den Pfad fallweise anpassen musst, auch nicht schädlich.

cp --archive --recursive --verbose '/mnt/Daten/.' '/media/PCalt/Test'

kopiert zehn Dateien richtig in das am PCalt existierende Verzeichnis /mnt/Daten/Test, nur dem Link nicht.

Jetzt also nicht nach /media/PCalt, sondern /media/PCalt/Test. Das sorgt zum Glück nicht für neue Verwirrung.

Wie ist denn PCalt in der fstab eingebunden? Über nfs?

Wenn pcNeu:/mnt/Daten/2024.pdf auf pcNeu:/mnt/Daten/Biblio/2024.pdf weist, wie soll das auf pcAlt kopiert werden? Ob pcNeu unter pcAlt überhaupt sichtbar ist und wie kann der copy-Befehl ja nicht wissen.

michahe

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2013

Beiträge: 874

user_unknown

Wenn erst der Link, dann die Datei kopiert wird, sollte der Link als verwaister Link kopiert werden, aber wenn dann die Datei nachzügelt wäre er wieder geheilt.

In der Tat gibt es (begründet) zur Laufzeit des cp-Befehls die Zieldatei noch nicht. Der (verwaiste) Link wird gar nicht angelegt mit der Meldung

Die symbolische verknüpfung kann nicht angelegt werde; die Operation wird nicht unterstützt. 

Wie würde mein cp-Befehl

$ cp --archive --recursive --verbose '/mnt/Daten/VerzeichnisA/.' '/media/ZielPC/VerzeichnisA'

"übersetzt" nach rsync ausschauen?

Mein Versuch:

$ rsync -avh '/mnt/Daten/VerzeichnisA/.' '/media/ZielPC/VerzeichnisA'

liefert das gleiche Ergebnis, Operation nicht unterstützt...

Jetzt auf ein anderes per fstab eingebundes Laufwerk: Der verwaiste Link wird korrekt angelegt. Die fstab:

// PC funktioniert NICHT:
abc-X123/X123-Daten                       /media/abc-X123                  cifs    noauto,_netdev,users,uid=1000,gid=1000,username=meinname    0     0

#//USB-Festplatte funktioniert:
UUID=xxxxxxxx-1234-5678-xxxx-xxxx123412   /media/myBook16                  ext4    auto,nofail,rw,async,users               0     0

CarstenHa

Avatar von CarstenHa

Anmeldungsdatum:
1. Mai 2020

Beiträge: 154

Ah, das ist als cifs eingebunden. Soweit ich weiß, werden da Symlinks in der Standardkonfiguration nicht unterstützt. Dann wird dir wahrscheinlich auch rsync nicht weiterhelfen. Ich weiß nicht, ob man vielleicht über die smb.conf was machen kann:

Samba Server/smb.conf

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

michahe schrieb:

[…]

// PC funktioniert NICHT:
abc-X123/X123-Daten                       /media/abc-X123                  cifs    noauto,_netdev,users,uid=1000,gid=1000,username=meinname    0     0

Aha, ein Netzlaufwerk vom Typ SMB. Warum führst Du Deine Helfer in die Irre, indem Du meine Frage nach dem Typ des Dateisystems mit „ext4“ beantwortest?

michahe

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2013

Beiträge: 874

Danke kB,

ich wollte selbstverständlich niemanden in die Irre führen und verstehe es noch nicht: Ich wollte ursprünglich auf den zweiten PC kopieren:

michahe schrieb:

[…]

// PC funktioniert NICHT:
abc-X123/X123-Daten                       /media/abc-X123                  cifs    noauto,_netdev,users,uid=1000,gid=1000,username=meinname    0     0

Da ich wusste, das bei einem rsync-Backup auf ein USB-Laufwerk die SymLinks erhalten bleiben, habe ich es erfolgreich nachgestellt.

Wie lautet die Definition des Unterschieds bzw. für cifs / ext4? Definitiv ist die PC-Festplatte ext4 formatiert ...

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4735

@michahe: Das Dateisystem bestimmt die Eigenschaften die unterstützt werden, also zum Beispiel Symlinks oder nicht. Du hast die Platte als SMB-Freigabe eingebunden, also bestimmt das auch was möglich ist und was nicht. Das die Platte auf der anderen Seite der Verbindung mit ext4 formatiert ist, weiss der Rechner ja nicht, der sieht die als SMB-Freigabe und kann nur das damit machen was mit solchen Freigaben möglich ist.

michahe

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2013

Beiträge: 874

Danke @Marc_BlackJack_Rintsch, Frage gut und vollständig beantwortet!

Antworten |