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 cd
ke direktori sumber dan jalankan salah satu copyfiles glob*here
atau cutfiles glob*here
. Semua yang terjadi adalah shell Anda memperluas gumpalan dan menempatkan nama file ke dalam array. Anda kemudian cd
ke direktori tujuan dan menjalankan pastefiles
, yang mengeksekusi cp
perintah 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).
cd
perintah, sehingga Anda dapat hanyacd -
untuk kembali ke direktori sebelumnya, up-panah untuk mengingatcd
perintah, dan mengedit garis menjadicp
bukancd
. (ctrl-a (awal-line-), alt-d (kill-word)cp -a
,, ctrl-e (akhir-of-line)).