Nếu tôi thấy tình huống đó diễn ra một lần, tôi có thể:
a=`pwd`
cd /somewhere/else
cp "$a/myfile" .
Nếu có các thư mục mà tôi thấy mình sao chép các tệp không thường xuyên, tôi có thể sẽ xác định một số biến số ghi nhớ cho chúng trong .profile của mình.
Chỉnh sửa để thêm:
Sau khi ngủ trên đó, tôi tự hỏi làm thế nào tôi có thể tiến gần đến các hành vi GUI / OS khác khi bạn chọn một số tệp, "cắt" hoặc "sao chép" chúng, sau đó "dán" chúng vào một nơi khác. Cơ chế lựa chọn tốt nhất tôi có thể đưa ra là bộ não / sở thích của bạn cộng với tính năng toàn cầu của vỏ. Tôi không sáng tạo lắm với việc đặt tên, nhưng đây là ý tưởng cơ bản (theo cú pháp 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
}
Để sử dụng nó, hãy đặt mã vào ~ / .bash_profile, sau đó cd
đến thư mục nguồn và chạy copyfiles glob*here
hoặc cutfiles glob*here
. Tất cả những gì xảy ra là vỏ của bạn mở rộng các khối và đặt các tên tệp đó thành một mảng. Sau đó cd
, bạn đến thư mục đích và chạy pastefiles
, thực thi một cp
lệnh cho mỗi tệp nguồn. Nếu trước đây bạn đã "cắt" các tệp, thì các mục đích cũng loại bỏ tệp nguồn (hoặc, cố gắng). Điều này không thực hiện bất kỳ kiểm tra lỗi nào (của các tệp hiện có, trước khi có khả năng ghi đè chúng bằng cp
; hoặc bạn có quyền xóa các tệp trong khi "cắt" hoặc bạn có thể truy cập lại thư mục nguồn sau khi bạn di chuyển ra ngoài của nó).
cd
lệnh, vì vậy bạn chỉ cầncd -
quay lại thư mục trước đó, mũi tên lên để gọi lạicd
lệnh và chỉnh sửa dòng sẽcp
thay thếcd
. (ctrl-a (đầu dòng), alt-d (kill-word)cp -a
, ctrl-e (cuối dòng)).