Jika saya melihat situasi itu datang sekali, saya mungkin:
a=`pwd`
cd /somewhere/else
cp "$a/myfile" .
Jika ada direktori yang saya temukan menyalin file secara tidak teratur, saya mungkin akan mendefinisikan beberapa variabel mnemonic untuk mereka di .profile saya.
Diedit untuk menambahkan:
Setelah tidur di atasnya, saya bertanya-tanya seberapa dekat saya bisa dengan perilaku GUI / OS lain di mana Anda memilih beberapa file, "potong" atau "salin" mereka, kemudian "tempel" mereka di tempat lain. Mekanisme seleksi terbaik yang bisa saya buat adalah otak / preferensi Anda ditambah fitur globbing shell. Saya tidak terlalu kreatif dalam penamaan, tetapi ini adalah ide dasar (dalam sintaks 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
}
Untuk menggunakannya, masukkan kode ke ~ / .bash_profile, lalu cdke direktori sumber dan jalankan salah satu copyfiles glob*hereatau cutfiles glob*here. Semua yang terjadi adalah shell Anda memperluas gumpalan dan menempatkan nama file ke dalam array. Anda kemudian cdke direktori tujuan dan menjalankan pastefiles, yang mengeksekusi cpperintah untuk setiap file sumber. Jika sebelumnya Anda "memotong" file, maka pastefile juga menghapus file sumber (atau, mencoba untuk). Ini tidak melakukan pengecekan kesalahan (dari file yang ada, sebelum berpotensi mengalahkan mereka dengan cp; atau bahwa Anda memiliki izin untuk menghapus file selama "pemotongan", atau bahwa Anda dapat mengakses kembali direktori sumber setelah Anda pindah) itu).
cdperintah, sehingga Anda dapat hanyacd -untuk kembali ke direktori sebelumnya, up-panah untuk mengingatcdperintah, dan mengedit garis menjadicpbukancd. (ctrl-a (awal-line-), alt-d (kill-word)cp -a,, ctrl-e (akhir-of-line)).