Wenn ich diese Situation einmalig sehen würde, könnte ich:
a=`pwd`
cd /somewhere/else
cp "$a/myfile" .
Wenn es Verzeichnisse gäbe, in die ich Dateien halbjährlich kopiert habe, würde ich wahrscheinlich in meinem .profile einige mnemonische Variablen für sie definieren.
Bearbeitet, um hinzuzufügen:
Nachdem ich darauf geschlafen hatte, fragte ich mich, wie weit ich mit anderen GUI / OS-Verhaltensweisen kommen könnte, bei denen Sie eine bestimmte Anzahl von Dateien auswählen, ausschneiden oder kopieren und sie dann an einer anderen Stelle einfügen. Der beste Auswahlmechanismus, den ich finden konnte, war Ihr Gehirn / Ihre Vorlieben sowie die Globbing-Funktion der Shell. Ich bin nicht sehr kreativ im Benennen, aber dies ist die Grundidee (in Bash-Syntax):
function copyfiles {
_copypastefiles=("$@")
_copypastesrc="$PWD"
_copypastemode=copy
}
function cutfiles {
_copypastefiles=("$@")
_copypastesrc="$PWD"
_copypastemode=cut
}
function pastefiles {
for f in "${_copypastefiles[@]}"
do
cp "${_copypastesrc}/$f" .
if [[ ${_copypastemode} = "cut" ]]
then
rm "${_copypastesrc}/$f"
fi
done
}
Um es zu benutzen, legen Sie den Code in ~ / .bash_profile, dann cd
in das Quellverzeichnis und führen Sie entweder copyfiles glob*here
oder aus cutfiles glob*here
. Alles, was passiert, ist, dass Ihre Shell die Globs erweitert und diese Dateinamen in ein Array einsetzt. Sie wechseln dann cd
in das Zielverzeichnis und führen aus pastefiles
, welches cp
für jede Quelldatei einen Befehl ausführt . Wenn Sie zuvor die Dateien "ausgeschnitten" hatten, werden durch Pastefiles auch die Quelldateien entfernt (oder versucht). Dies führt keine Fehlerüberprüfung durch (von vorhandenen Dateien, bevor diese möglicherweise mit dem gelöscht werden cp
; oder Sie haben die Berechtigung, die Dateien während eines "Ausschnitts" zu entfernen, oder Sie können nach dem Auszug erneut auf das Quellverzeichnis zugreifen davon).
cd
Befehl, so können Sie einfachcd -
auf das vorherige Verzeichnis zurück zu gehen, up-Pfeil , um das wieder zucd
Befehl, und bearbeiten Sie die Zeile seincp
stattcd
. (Strg-a (Zeilenanfang), Alt-d (cp -a
Abschusswort ) , Strg-e (Zeilenende)).