On Mit, 16 Apr 2003 at 10:04 (+0200), Bernd Brodesser wrote:
* David Haller schrieb am 16.Apr.2003:
On Tue, 15 Apr 2003, Jan Trippler wrote:
cnt=1 for file in "$@" do if test -d "$file"; then echo "Verzeichnisse können nicht nach $trash verschoben werden" continue
Und was ist mit Symlinks, Gerätedateien, Named Pipes und Sockets?
Die können verschoben werden. Es ging mir bei dem Verzeichnis-Ausschluss eigentlich nur darum, dass in der ersten Variante des Scripts eine flache Struktur in trash abgelegt wurde. Wenn man da jetzt Verzeichnisse mit reingenommen hätte, wäre das ein wenig Kuddelmuddel geworden. Da mir das nicht so gefallen hat, habe ich die 2. Variante (Ablage der Originalpfade) gebastelt. [...]
Ich muß gestehen, daß ich mir Euer Skript nicht so genau angesehen habe, und hier in der Mail ist es ja reichlich zerstückelt. Aber habt Ihr auch bedacht, daß eine Datei auch ein Hardlink haben kann? Im gleichen Verzeichnis oder in einem anderen? Wird wahrscheinlich auch nur in $trash verschoben. Ist das so gewollt?
Genau - und zwar nur der eine, der / die anderen bleiben stehen. Solange trash im gleichen Dateisystem wie die Hardlinks sind, bleibt auch der Linkcount erhalten, ansonsten wird der Link beim mv zerstört. Da steckt natürlich eine Gafahr drin.
Ich glaube, die ganze Verschieberrei wirft weit mehr Probleme auf, als es löst. Vor allem verläßt man sich darauf und wird schludrig bei der Verwendung von rm.
Prinzipiell ACK, nur _wenn_ man so ein Script baut, muss man vorher eben etwas nachdenken und mögliche Folgen bedenken. Das war der Hintergrund meiner Spielereien. Jan