Is there an equivalent of cd - for cp or mvWhat is the zsh equivalent of bash's !$ (Bang Dollar)?Is there a Konsole equivalent for gnome?equivalent “echo on” for linux?Is there anything like emacs tramp for shell (bash/zsh)?What is the bash equivalent of zsh vared command?Where should I export an environment variable so that all combinations of bash/dash, interactive/non-interactive, login/non-login, will pick it up?zsh complete cd with two argumentsHow to use linux to not get crazy with root privilegesHow to synchronize two directories (on external harddrives with Linux), recognizing file movements?Is there an FTP or FTP-like client which allows “delta uploads” - i.e. only uploading the parts of a file which have been changed?

Forgetting the musical notes while performing in concert

One verb to replace 'be a member of' a club

How to Prove P(a) → ∀x(P(x) ∨ ¬(x = a)) using Natural Deduction

Why was the shrink from 8″ made only to 5.25″ and not smaller (4″ or less)

Why is it a bad idea to hire a hitman to eliminate most corrupt politicians?

Is it inappropriate for a student to attend their mentor's dissertation defense?

Notepad++ delete until colon for every line with replace all

Why were 5.25" floppy drives cheaper than 8"?

Does Dispel Magic work on Tiny Hut?

"the same as" in a sentence

Is it possible to map the firing of neurons in the human brain so as to stimulate artificial memories in someone else?

Where would I need my direct neural interface to be implanted?

Unlock My Phone! February 2018

Why do I get negative height?

Can someone clarify Hamming's notion of important problems in relation to modern academia?

Placement of More Information/Help Icon button for Radio Buttons

Is there an expression that means doing something right before you will need it rather than doing it in case you might need it?

Am I breaking OOP practice with this architecture?

Description list Formatting using enumitem

How to compactly explain secondary and tertiary characters without resorting to stereotypes?

Why didn't Boeing produce its own regional jet?

What's the meaning of "Sollensaussagen"?

How to stretch the corners of this image so that it looks like a perfect rectangle?

Does the Idaho Potato Commission associate potato skins with healthy eating?



Is there an equivalent of cd - for cp or mv


What is the zsh equivalent of bash's !$ (Bang Dollar)?Is there a Konsole equivalent for gnome?equivalent “echo on” for linux?Is there anything like emacs tramp for shell (bash/zsh)?What is the bash equivalent of zsh vared command?Where should I export an environment variable so that all combinations of bash/dash, interactive/non-interactive, login/non-login, will pick it up?zsh complete cd with two argumentsHow to use linux to not get crazy with root privilegesHow to synchronize two directories (on external harddrives with Linux), recognizing file movements?Is there an FTP or FTP-like client which allows “delta uploads” - i.e. only uploading the parts of a file which have been changed?













14















In Bash and similar shells cd - changes the current directory to a previously visited one. It's often very handy. I wonder if there is similar shorthand for copying or moving files, like:



~/project-a/ $ cd ../project-b
~/project-b/ $ cp Makefile LICENSE - # this won't work, hence the question


I'd be also happy with zsh specific answers.










share|improve this question

















  • 5





    With bash: Instead of - press Esc and then . to get from last command its last argument (here: ../project-b).

    – Cyrus
    2 days ago











  • That's true @Cyrus, but in the example the intention is to copy from project-b to project-a.

    – Tadeusz Łazurski
    2 days ago












  • @Cyrus, I was always aware that bash has some Emacs-like key bindings and am a heavy Emacs user myself. I was always happily using the general line movement keys of emacs on the shell (C-a etc.). But your comment prompted me to actually look for key bindings in man bash. Holy moly... it really is Emacs-like, complete with the kill ring, the mark semantics (C-space) etc. Thanks for bringing that up.

    – AnoE
    yesterday
















14















In Bash and similar shells cd - changes the current directory to a previously visited one. It's often very handy. I wonder if there is similar shorthand for copying or moving files, like:



~/project-a/ $ cd ../project-b
~/project-b/ $ cp Makefile LICENSE - # this won't work, hence the question


I'd be also happy with zsh specific answers.










share|improve this question

















  • 5





    With bash: Instead of - press Esc and then . to get from last command its last argument (here: ../project-b).

    – Cyrus
    2 days ago











  • That's true @Cyrus, but in the example the intention is to copy from project-b to project-a.

    – Tadeusz Łazurski
    2 days ago












  • @Cyrus, I was always aware that bash has some Emacs-like key bindings and am a heavy Emacs user myself. I was always happily using the general line movement keys of emacs on the shell (C-a etc.). But your comment prompted me to actually look for key bindings in man bash. Holy moly... it really is Emacs-like, complete with the kill ring, the mark semantics (C-space) etc. Thanks for bringing that up.

    – AnoE
    yesterday














14












14








14


1






In Bash and similar shells cd - changes the current directory to a previously visited one. It's often very handy. I wonder if there is similar shorthand for copying or moving files, like:



~/project-a/ $ cd ../project-b
~/project-b/ $ cp Makefile LICENSE - # this won't work, hence the question


I'd be also happy with zsh specific answers.










share|improve this question














In Bash and similar shells cd - changes the current directory to a previously visited one. It's often very handy. I wonder if there is similar shorthand for copying or moving files, like:



~/project-a/ $ cd ../project-b
~/project-b/ $ cp Makefile LICENSE - # this won't work, hence the question


I'd be also happy with zsh specific answers.







linux bash file-transfer zsh






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 2 days ago









Tadeusz ŁazurskiTadeusz Łazurski

313310




313310







  • 5





    With bash: Instead of - press Esc and then . to get from last command its last argument (here: ../project-b).

    – Cyrus
    2 days ago











  • That's true @Cyrus, but in the example the intention is to copy from project-b to project-a.

    – Tadeusz Łazurski
    2 days ago












  • @Cyrus, I was always aware that bash has some Emacs-like key bindings and am a heavy Emacs user myself. I was always happily using the general line movement keys of emacs on the shell (C-a etc.). But your comment prompted me to actually look for key bindings in man bash. Holy moly... it really is Emacs-like, complete with the kill ring, the mark semantics (C-space) etc. Thanks for bringing that up.

    – AnoE
    yesterday













  • 5





    With bash: Instead of - press Esc and then . to get from last command its last argument (here: ../project-b).

    – Cyrus
    2 days ago











  • That's true @Cyrus, but in the example the intention is to copy from project-b to project-a.

    – Tadeusz Łazurski
    2 days ago












  • @Cyrus, I was always aware that bash has some Emacs-like key bindings and am a heavy Emacs user myself. I was always happily using the general line movement keys of emacs on the shell (C-a etc.). But your comment prompted me to actually look for key bindings in man bash. Holy moly... it really is Emacs-like, complete with the kill ring, the mark semantics (C-space) etc. Thanks for bringing that up.

    – AnoE
    yesterday








5




5





With bash: Instead of - press Esc and then . to get from last command its last argument (here: ../project-b).

– Cyrus
2 days ago





With bash: Instead of - press Esc and then . to get from last command its last argument (here: ../project-b).

– Cyrus
2 days ago













That's true @Cyrus, but in the example the intention is to copy from project-b to project-a.

– Tadeusz Łazurski
2 days ago






That's true @Cyrus, but in the example the intention is to copy from project-b to project-a.

– Tadeusz Łazurski
2 days ago














@Cyrus, I was always aware that bash has some Emacs-like key bindings and am a heavy Emacs user myself. I was always happily using the general line movement keys of emacs on the shell (C-a etc.). But your comment prompted me to actually look for key bindings in man bash. Holy moly... it really is Emacs-like, complete with the kill ring, the mark semantics (C-space) etc. Thanks for bringing that up.

– AnoE
yesterday






@Cyrus, I was always aware that bash has some Emacs-like key bindings and am a heavy Emacs user myself. I was always happily using the general line movement keys of emacs on the shell (C-a etc.). But your comment prompted me to actually look for key bindings in man bash. Holy moly... it really is Emacs-like, complete with the kill ring, the mark semantics (C-space) etc. Thanks for bringing that up.

– AnoE
yesterday











2 Answers
2






active

oldest

votes


















28














If your shell has cd -, then it will likely have either the special variable $OLDPWD and/or the shortcut ~- for the directory you've been in previously.



cp Makefile LICENSE "$OLDPWD/"

cp Makefile LICENSE ~-

cat ~-/Makefile


Indeed the POSIX shell language (upon which ksh/bash/zsh are built) specifies that cd - should be equal to cd "$OLDPWD".






share|improve this answer




















  • 1





    Tilde expansion has a lot more to it even than that. For an additional taste, unix.stackexchange.com/a/286628/135943 and that doesn’t even cover home directories.

    – Wildcard
    2 days ago



















5














You can always use shell backquotes.



They act like a subshell : the command in the backquotes is executed first, and its output is placed as argument of the main command.



~/folderA$ cd ../folderB 
~/folderB$ cp Makefile `cd -`
# gets expended to "cp Makefile ~/folderA"





share|improve this answer








New contributor




Nathanael C. is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 4





    No, the command cd - outputs nothing, so `cd -` expands to the empty string. Try the command % echo `cd -` to verify. You would need to use something like % echo `cd -; pwd` ...

    – Neal Young
    2 days ago







  • 2





    @NealYoung: It seems that there’s something wrong with your shell. POSIX says “When a <hyphen-minus> is used as the operand [to cd], this shall be equivalent to the command: cd "$OLDPWD" && pwd, which changes to the previous working directory and then writes its name.” … (Cont’d)

    – G-Man
    2 days ago






  • 1





    (Cont’d) …  And bash(1) says “An argument of - is converted to $OLDPWD before the directory change is attempted.  If a non-empty directory name from CDPATH is used, or if - is the first argument, and the directory change is successful, the absolute pathname of the new working directory is written to the standard output.”

    – G-Man
    2 days ago











  • @Nathanael C.: But please use "$(cd -)".

    – G-Man
    2 days ago












  • There's only "something wrong" if the shell claims POSIX compliance, and I think it's perfectly normal for shells that weren't invoked as /bin/sh and aren't specifically trying to emulate a POSIX shell to implement their language in whatever way they want...

    – grawity
    2 days ago











Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "3"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1419624%2fis-there-an-equivalent-of-cd-for-cp-or-mv%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









28














If your shell has cd -, then it will likely have either the special variable $OLDPWD and/or the shortcut ~- for the directory you've been in previously.



cp Makefile LICENSE "$OLDPWD/"

cp Makefile LICENSE ~-

cat ~-/Makefile


Indeed the POSIX shell language (upon which ksh/bash/zsh are built) specifies that cd - should be equal to cd "$OLDPWD".






share|improve this answer




















  • 1





    Tilde expansion has a lot more to it even than that. For an additional taste, unix.stackexchange.com/a/286628/135943 and that doesn’t even cover home directories.

    – Wildcard
    2 days ago
















28














If your shell has cd -, then it will likely have either the special variable $OLDPWD and/or the shortcut ~- for the directory you've been in previously.



cp Makefile LICENSE "$OLDPWD/"

cp Makefile LICENSE ~-

cat ~-/Makefile


Indeed the POSIX shell language (upon which ksh/bash/zsh are built) specifies that cd - should be equal to cd "$OLDPWD".






share|improve this answer




















  • 1





    Tilde expansion has a lot more to it even than that. For an additional taste, unix.stackexchange.com/a/286628/135943 and that doesn’t even cover home directories.

    – Wildcard
    2 days ago














28












28








28







If your shell has cd -, then it will likely have either the special variable $OLDPWD and/or the shortcut ~- for the directory you've been in previously.



cp Makefile LICENSE "$OLDPWD/"

cp Makefile LICENSE ~-

cat ~-/Makefile


Indeed the POSIX shell language (upon which ksh/bash/zsh are built) specifies that cd - should be equal to cd "$OLDPWD".






share|improve this answer















If your shell has cd -, then it will likely have either the special variable $OLDPWD and/or the shortcut ~- for the directory you've been in previously.



cp Makefile LICENSE "$OLDPWD/"

cp Makefile LICENSE ~-

cat ~-/Makefile


Indeed the POSIX shell language (upon which ksh/bash/zsh are built) specifies that cd - should be equal to cd "$OLDPWD".







share|improve this answer














share|improve this answer



share|improve this answer








edited 2 days ago

























answered 2 days ago









grawitygrawity

242k37512569




242k37512569







  • 1





    Tilde expansion has a lot more to it even than that. For an additional taste, unix.stackexchange.com/a/286628/135943 and that doesn’t even cover home directories.

    – Wildcard
    2 days ago













  • 1





    Tilde expansion has a lot more to it even than that. For an additional taste, unix.stackexchange.com/a/286628/135943 and that doesn’t even cover home directories.

    – Wildcard
    2 days ago








1




1





Tilde expansion has a lot more to it even than that. For an additional taste, unix.stackexchange.com/a/286628/135943 and that doesn’t even cover home directories.

– Wildcard
2 days ago






Tilde expansion has a lot more to it even than that. For an additional taste, unix.stackexchange.com/a/286628/135943 and that doesn’t even cover home directories.

– Wildcard
2 days ago














5














You can always use shell backquotes.



They act like a subshell : the command in the backquotes is executed first, and its output is placed as argument of the main command.



~/folderA$ cd ../folderB 
~/folderB$ cp Makefile `cd -`
# gets expended to "cp Makefile ~/folderA"





share|improve this answer








New contributor




Nathanael C. is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 4





    No, the command cd - outputs nothing, so `cd -` expands to the empty string. Try the command % echo `cd -` to verify. You would need to use something like % echo `cd -; pwd` ...

    – Neal Young
    2 days ago







  • 2





    @NealYoung: It seems that there’s something wrong with your shell. POSIX says “When a <hyphen-minus> is used as the operand [to cd], this shall be equivalent to the command: cd "$OLDPWD" && pwd, which changes to the previous working directory and then writes its name.” … (Cont’d)

    – G-Man
    2 days ago






  • 1





    (Cont’d) …  And bash(1) says “An argument of - is converted to $OLDPWD before the directory change is attempted.  If a non-empty directory name from CDPATH is used, or if - is the first argument, and the directory change is successful, the absolute pathname of the new working directory is written to the standard output.”

    – G-Man
    2 days ago











  • @Nathanael C.: But please use "$(cd -)".

    – G-Man
    2 days ago












  • There's only "something wrong" if the shell claims POSIX compliance, and I think it's perfectly normal for shells that weren't invoked as /bin/sh and aren't specifically trying to emulate a POSIX shell to implement their language in whatever way they want...

    – grawity
    2 days ago















5














You can always use shell backquotes.



They act like a subshell : the command in the backquotes is executed first, and its output is placed as argument of the main command.



~/folderA$ cd ../folderB 
~/folderB$ cp Makefile `cd -`
# gets expended to "cp Makefile ~/folderA"





share|improve this answer








New contributor




Nathanael C. is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 4





    No, the command cd - outputs nothing, so `cd -` expands to the empty string. Try the command % echo `cd -` to verify. You would need to use something like % echo `cd -; pwd` ...

    – Neal Young
    2 days ago







  • 2





    @NealYoung: It seems that there’s something wrong with your shell. POSIX says “When a <hyphen-minus> is used as the operand [to cd], this shall be equivalent to the command: cd "$OLDPWD" && pwd, which changes to the previous working directory and then writes its name.” … (Cont’d)

    – G-Man
    2 days ago






  • 1





    (Cont’d) …  And bash(1) says “An argument of - is converted to $OLDPWD before the directory change is attempted.  If a non-empty directory name from CDPATH is used, or if - is the first argument, and the directory change is successful, the absolute pathname of the new working directory is written to the standard output.”

    – G-Man
    2 days ago











  • @Nathanael C.: But please use "$(cd -)".

    – G-Man
    2 days ago












  • There's only "something wrong" if the shell claims POSIX compliance, and I think it's perfectly normal for shells that weren't invoked as /bin/sh and aren't specifically trying to emulate a POSIX shell to implement their language in whatever way they want...

    – grawity
    2 days ago













5












5








5







You can always use shell backquotes.



They act like a subshell : the command in the backquotes is executed first, and its output is placed as argument of the main command.



~/folderA$ cd ../folderB 
~/folderB$ cp Makefile `cd -`
# gets expended to "cp Makefile ~/folderA"





share|improve this answer








New contributor




Nathanael C. is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.










You can always use shell backquotes.



They act like a subshell : the command in the backquotes is executed first, and its output is placed as argument of the main command.



~/folderA$ cd ../folderB 
~/folderB$ cp Makefile `cd -`
# gets expended to "cp Makefile ~/folderA"






share|improve this answer








New contributor




Nathanael C. is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this answer



share|improve this answer






New contributor




Nathanael C. is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









answered 2 days ago









Nathanael C.Nathanael C.

511




511




New contributor




Nathanael C. is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Nathanael C. is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Nathanael C. is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 4





    No, the command cd - outputs nothing, so `cd -` expands to the empty string. Try the command % echo `cd -` to verify. You would need to use something like % echo `cd -; pwd` ...

    – Neal Young
    2 days ago







  • 2





    @NealYoung: It seems that there’s something wrong with your shell. POSIX says “When a <hyphen-minus> is used as the operand [to cd], this shall be equivalent to the command: cd "$OLDPWD" && pwd, which changes to the previous working directory and then writes its name.” … (Cont’d)

    – G-Man
    2 days ago






  • 1





    (Cont’d) …  And bash(1) says “An argument of - is converted to $OLDPWD before the directory change is attempted.  If a non-empty directory name from CDPATH is used, or if - is the first argument, and the directory change is successful, the absolute pathname of the new working directory is written to the standard output.”

    – G-Man
    2 days ago











  • @Nathanael C.: But please use "$(cd -)".

    – G-Man
    2 days ago












  • There's only "something wrong" if the shell claims POSIX compliance, and I think it's perfectly normal for shells that weren't invoked as /bin/sh and aren't specifically trying to emulate a POSIX shell to implement their language in whatever way they want...

    – grawity
    2 days ago












  • 4





    No, the command cd - outputs nothing, so `cd -` expands to the empty string. Try the command % echo `cd -` to verify. You would need to use something like % echo `cd -; pwd` ...

    – Neal Young
    2 days ago







  • 2





    @NealYoung: It seems that there’s something wrong with your shell. POSIX says “When a <hyphen-minus> is used as the operand [to cd], this shall be equivalent to the command: cd "$OLDPWD" && pwd, which changes to the previous working directory and then writes its name.” … (Cont’d)

    – G-Man
    2 days ago






  • 1





    (Cont’d) …  And bash(1) says “An argument of - is converted to $OLDPWD before the directory change is attempted.  If a non-empty directory name from CDPATH is used, or if - is the first argument, and the directory change is successful, the absolute pathname of the new working directory is written to the standard output.”

    – G-Man
    2 days ago











  • @Nathanael C.: But please use "$(cd -)".

    – G-Man
    2 days ago












  • There's only "something wrong" if the shell claims POSIX compliance, and I think it's perfectly normal for shells that weren't invoked as /bin/sh and aren't specifically trying to emulate a POSIX shell to implement their language in whatever way they want...

    – grawity
    2 days ago







4




4





No, the command cd - outputs nothing, so `cd -` expands to the empty string. Try the command % echo `cd -` to verify. You would need to use something like % echo `cd -; pwd` ...

– Neal Young
2 days ago






No, the command cd - outputs nothing, so `cd -` expands to the empty string. Try the command % echo `cd -` to verify. You would need to use something like % echo `cd -; pwd` ...

– Neal Young
2 days ago





2




2





@NealYoung: It seems that there’s something wrong with your shell. POSIX says “When a <hyphen-minus> is used as the operand [to cd], this shall be equivalent to the command: cd "$OLDPWD" && pwd, which changes to the previous working directory and then writes its name.” … (Cont’d)

– G-Man
2 days ago





@NealYoung: It seems that there’s something wrong with your shell. POSIX says “When a <hyphen-minus> is used as the operand [to cd], this shall be equivalent to the command: cd "$OLDPWD" && pwd, which changes to the previous working directory and then writes its name.” … (Cont’d)

– G-Man
2 days ago




1




1





(Cont’d) …  And bash(1) says “An argument of - is converted to $OLDPWD before the directory change is attempted.  If a non-empty directory name from CDPATH is used, or if - is the first argument, and the directory change is successful, the absolute pathname of the new working directory is written to the standard output.”

– G-Man
2 days ago





(Cont’d) …  And bash(1) says “An argument of - is converted to $OLDPWD before the directory change is attempted.  If a non-empty directory name from CDPATH is used, or if - is the first argument, and the directory change is successful, the absolute pathname of the new working directory is written to the standard output.”

– G-Man
2 days ago













@Nathanael C.: But please use "$(cd -)".

– G-Man
2 days ago






@Nathanael C.: But please use "$(cd -)".

– G-Man
2 days ago














There's only "something wrong" if the shell claims POSIX compliance, and I think it's perfectly normal for shells that weren't invoked as /bin/sh and aren't specifically trying to emulate a POSIX shell to implement their language in whatever way they want...

– grawity
2 days ago





There's only "something wrong" if the shell claims POSIX compliance, and I think it's perfectly normal for shells that weren't invoked as /bin/sh and aren't specifically trying to emulate a POSIX shell to implement their language in whatever way they want...

– grawity
2 days ago

















draft saved

draft discarded
















































Thanks for contributing an answer to Super User!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1419624%2fis-there-an-equivalent-of-cd-for-cp-or-mv%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Sum ergo cogito? 1 nng

三茅街道4182Guuntc Dn precexpngmageondP