通常,下载并解压压缩文件夹后,最终会得到如下文件夹结构:
.
└── downloaded
└── downloaded
├── a
├── b
├── c
└── d
我知道我可以做类似的事情mv downloaded/downloaded/* downloaded && rmdir downloaded/downloaded
。但是我记得有一次在学习一个教程时,作者使用了一个命令(我们称之为),xyz
将的内容移动downloaded/downloaded
到downloaded
,然后downloaded/downloaded
自动删除,如下所示:xyz downloaded/downloaded
。
我只是忘记了该命令的名称以及我在哪个教程中找到它。但在我看来它非常有用。
我的问题是:您知道命令名称吗?
我偶然发现了几个问题,人们问如何将文件夹内容上移一级,但没有一个问题的答案包含我正在寻找的特定命令。
答案1
tar --remove-files -cC downloaded{,} | tar -x
(这并不像您的示例那么简单,xyz downloaded/downloaded
但请注意downloaded
只输入一次。)
解释:
首先downloaded{,}
将 展开为bash
,downloaded downloaded
因此该命令相当于:
tar -c --remove-files -C downloaded downloaded | tar -x
顺序含义:
tar -c
– 创建档案…--remove-files
– …(但添加后会删除文件和目录)…-C downloaded
– …工作目录更改为(外部)downloaded
;downloaded
– 将(内部)添加downloaded
到档案;|
– 然后将档案传输至...tar -x
–……另一人tar
命令将其提取出来。