将所有 pwd 内容移动到 pwd 的父目录?

将所有 pwd 内容移动到 pwd 的父目录?

另一位用户问到了这个问题,我正在寻求澄清,因为显然在我获得 50 分之前我无法发表评论。

将所有内容(包括隐藏项目)上移一级的答案之一是:

mv /path/subfolder/{.,}* /path/

我想知道的是,能否再简单地写一下:

mv ~/{.,}* ../

???

谢谢

答案1

这两个命令是等效的*

mv /path/subfolder/{.,}* /path/
cd /path/subfolder
mv {.,}* ..

这两个命令完成完全相同的移动操作。

* 如果/path/subfolder符号链接到另一个目录,并且该目录不是的直接子目录/path,那么它们就不等效;您的文件将移动到其他地方。

解释~含义

~扩展为的值,$HOME通常是/home/<my username>

假设你的 $HOME 是/home/myusername,运行mv ~/{.,}* ../将扩展为:

mv /home/myusername/{.,}* ../

(运行此命令将严重破坏您的主目录,因此不要运行您的缩短版本或我的扩展版本。)

到底是什么..

根据您运行该程序的目录,其实际位置..将会改变。

  • /home/myusername/downloads/foo../home/myusername/downloads
  • /位置..仍然是/

运行realpath ..以确定的准确路径..

警告:有时使用符号链接目录,..可以指真实目录的上级$PWD目录或父目录。这完全取决于上下文。

答案2

否。~是您的主目录。您不能用 替换任意路径~$(pwd)但是,如果 已经是您要移动其内容的目录,您可以执行mv ./{.,}* ../

相关内容