Если бы я увидел эту ситуацию как разовую, я мог бы:
a=`pwd`
cd /somewhere/else
cp "$a/myfile" .
Если бы были каталоги, в которых я обнаружил, что копирую файлы из полурегула, я бы, вероятно, определил для них некоторые мнемонические переменные в моем .profile.
Отредактировано, чтобы добавить:
Поспав на нем, я подумал, насколько близко я смог добраться до других поведений GUI / OS, где вы выбираете некоторое количество файлов, «вырезаете» или «копируете» их, а затем «вставляете» их в другое место. Лучшим механизмом выбора, который я мог придумать, был ваш мозг / предпочтения плюс функция оболочки. Я не очень креативен с именами, но это основная идея (в синтаксисе Bash):
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
}
Чтобы использовать его, поместите код в ~ / .bash_profile, затем cd
в исходный каталог и запустите либо copyfiles glob*here
или cutfiles glob*here
. Все, что происходит, это то, что ваша оболочка расширяет глобусы и помещает эти имена файлов в массив. Затем вы перейдете cd
в каталог назначения и запустите pastefiles
, который выполняет cp
команду для каждого исходного файла. Если вы ранее «вырезали» файлы, то pastefiles также удаляет исходный файл (или пытается). Это не делает никакой проверки ошибок (существующих файлов, до того, как они могут быть захлопнуты;; cp
или что у вас есть разрешения на удаление файлов во время «вырезания», или что вы можете повторно получить доступ к исходному каталогу после того, как вы выйдете этого).
cd
команду, чтобы вы могли простоcd -
вернуться в предыдущий каталог, нажать стрелку вверх, чтобы вызватьcd
команду, и отредактировать строкуcp
вместоcd
. (ctrl-a (начало строки), alt-d (kill-word)cp -a
, ctrl-e (конец строки)).