linux - 将文件从目录堆栈中的目录复制到当前目录

标签 linux bash

我经常发现自己想要将文件从目录堆栈中的一个目录复制到另一个目录,我想出的最佳解决方案是 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/

相关文章:

linux - Qt Creator Linux 断点在纯 C++ 项目中被跳过

linux - Nginx 服务器没有重启

Linux ubuntu awk。找到包含 2 个相同单词的句子放在它们附近

c - 如何从 C 的 shell 脚本执行函数

bash - 使用文件夹中最新的 7 倍更新 JPG 制作 gif(每周延时拍摄!)

bash - 从 PuTTY 运行的 shell 脚本返回代码到调用批处理文件?

c - Linux :/proc/<PID>/exe return path to executable '/bin/bash' for process located at '/home/<USER>/new/v'

java - 使用数据库部署 Java Web 应用程序

c++ - 库函数的新实现并在其中调用旧实现

c - 在套接字 C 中发送字符串?