如何将子目录移动到同一目录中的另一个子目录?

alx*_*ger 5 bash mv

有一个目录dir/。它包含子目录a- z. 我需要移动的子目录a-y成子目录z。如果这很难,那么不是a- z,而是提供需要移动的目录列表。

我怎样才能在 bash 中做到这一点?

shi*_*ams 8

使用大括号扩展:http : //www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html

对于您的情况,请执行以下操作:

mv {a..y} z/
Run Code Online (Sandbox Code Playgroud)

如果您有目录的名单,说dir1dir2dir3,然后像做:

mv -t z/ dir1 dir2 dir3
Run Code Online (Sandbox Code Playgroud)

或者可能:

mv -t z/ dir{1..3}
Run Code Online (Sandbox Code Playgroud)

简要说明:

  • -t选项的意思是“目标”。它通常用于在涉及多个文件/目录移动的情况下避免混淆。
  • 大括号扩展的工作方式是{1..15}打印从 1 到 15 的所有数字,{a..f}并将打印从a到的所有字母f


Cos*_*tas 1

至于我更安全的使用方式find

find dir/* -prune -type d -name "[a-y]" ! -name "z" -exec mv -t dir/z {} +
Run Code Online (Sandbox Code Playgroud)