我经常发现自己想要将文件从目录堆栈中的一个目录复制到另一个目录,我想出的最佳解决方案是 cp $(dirs -p | tail -n 1)/somefile.txt ./somefile.txt
有更好的解决方案吗?
最佳答案
可以通过DIRSTACK
数组直接访问目录堆栈;不需要替换命令。
cp "${DIRSTACK[-1]}/somefile.txt" .
<小时/>
您的原始代码存在错误,原因与 ls
的输出不应以编程方式使用的原因相同;包含换行符的目录名可能会破坏它。例如:
$ pushd $'foo\nbar'
$ dirs -p | head -1
~/bin/foo
使用 dirs +0
至少可以解决该问题(假设您正确地将命令替换引用为 cp "$(dirs +N)"/somefile.txt ./somefile.txt
):
$ dirs +0
~/bin/foo
bar
关于linux - 将文件从目录堆栈中的目录复制到当前目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49694460/