Якби я бачив, що ситуація стає одноразовою, я можу:
a=`pwd`
cd /somewhere/else
cp "$a/myfile" .
Якби були каталоги, за якими я можу копіювати файли з періодичної регулярності, я, мабуть, визначив деякі мнемонічні змінні для них у своєму .profile.
Відредаговано, щоб додати:
Після сну на ньому я задумався, наскільки тісно я можу потрапити до інших форм поведінки GUI / OS, де ви вибираєте деяку кількість файлів, "вирізаєте" чи "копіюєте" їх, а потім "вставляєте" їх десь ще. Найкращий механізм відбору, який я міг би придумати, - це ваш мозок / уподобання плюс функція обшивки оболонки. Я не дуже креативний в іменуванні, але це основна ідея (у синтаксисі Баша):
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
команду для кожного вихідного файлу. Якщо ви раніше "вирізали" файли, то пасти також видаляє вихідний файл (або, намагається). Це не робить перевірки помилок (для існуючих файлів, перш ніж потенційно їх виправити cp
, або що у вас є дозволи на видалення файлів під час "вирізання"), або що ви можете повторно отримати доступ до вихідного каталогу після того, як ви вийдете з неї).
cd
команду, так що ви можете простоcd -
повернутися до попереднього каталогу, стрілка вгору, щоб пригадатиcd
команду, і відредагувати рядок, який будеcp
замістьcd
. (ctrl-a (початок рядка), alt-d (слово вбивства)cp -a
, ctrl-e (кінець рядка)).