find files and move

jemand anders

Erfahrenes Mitglied
Hallo,

ich habe viele praktisch doppelte Files auf dem System, d. h. ein normaler File und ein weiterer File, der genauso heißt, mit einer Tilde am Ende.
Ich will die Tilde-Files aber nicht einfach löschen, sondern mal erst zwischenspeichern, allerdings mit Pfad.

Ich habe einen Befehl, der macht eigentlich das, was ich will, nur der Pfad fehlt noch.

D. h. statt den Pfad von
/home/user/Pfadx/Filename1
mitzunehmen zu
/home/user/TILDE_SIK/home/user/Pfadx/Filename1
wird im Moment nur
/home/user/TILDE_SIK/Filenname1
geschrieben, wodurch natürlich auch teilweise noch Files überschrieben werden.

Wer weiß, wie es geht?

So sieht das Statement momentan aus:
Code:
find /home/user/Pfadx -iname "**.*~" -type f -exec /bin/mv {} /home/user/TILDE_SIK \;
find /home/user/Pfady -iname "**.*~" -type f -exec /bin/mv {} /home/user/TILDE_SIK \;
find /home/user/Pfadz -iname "**.*~" -type f -exec /bin/mv {} /home/user/TILDE_SIK \;
...


Beste Grüße
 
Hallo,

schau dir mal die Tools readlink, basename und dirname an.


Code:
x=$(readlink ./anyfile) # /any/path/to/anyfile
y=$(dirname $x) # /any/path/to/
z=$(basename $x) # anyfile


Viele Grüße
 
Zurück