我有目录结构:
~/MYDIR/
/DESTINATIONDIR/
/DIR1/
/DIR2/
/file1
/file2
DIR1, DIR2,file1,file2
我需要搬到DESTINATIONDIR
从终端执行此操作的最优雅和最佳方式是什么?
UPD:假设我们有更多不同名称的文件和目录
我有目录结构:
~/MYDIR/
/DESTINATIONDIR/
/DIR1/
/DIR2/
/file1
/file2
DIR1, DIR2,file1,file2
我需要搬到DESTINATIONDIR
从终端执行此操作的最优雅和最佳方式是什么?
UPD:假设我们有更多不同名称的文件和目录
我会考虑三种方式来做到这一点。
哈克和错误助长,“移动所有的东西”
这将尝试将目标移动到自身并爆炸:
但它会移动[几乎]其他一切。所以它有效,但它有点乱。如果您需要匹配隐藏文件,请
shopt -s dotglob
事先运行它会起作用。手动移动文件列表
鉴于事情的简短列表,我们可以很容易地通过一点 bash 扩展将它们列出:
如果您需要使用此方法隐藏文件,只需将它们包含在列表中即可。
如果这个列表来自其他东西(例如
find
),那么很难确保目的地是最后一个参数。您可以使用参数将目标移动到前面-t
。这是一个可怕的例子,但是当你需要它时会突出显示:反向通配符
shopt
,优雅定义。因此,让我们在手动列出和通配符之间取得平衡。通过在 Bash 中打开扩展的 globbing 功能,我们可以选择 [几乎]除了目标目录之外的所有内容。
如果您需要匹配隐藏文件,请
shopt -s dotglob
事先运行它会起作用。关于什么: