我想知道如何将所有文件(而不是文件夹或目录)移动到现有文件夹或目录下两层。
答案1
您将需要使用 find 命令。
find . -type f -name "*" -print0 | xargs -0 -I {} mv {} ../backup_dir ; mv ../backup_dir ./new/directory
请注意,我已将文件移动到上一级目录,以防止 find 陷入查找要移动的新文件的循环中。然后将目录下移两级。
如果只需要当前目录下的文件,可以使用命令:
find . -type f -maxdepth 1 -name "*" -print0 | xargs -0 -I {} mv {} ../backup_dir
答案2
如果您有可用的 zsh,这非常简单。该模式*
匹配所有文件(包括目录)。要仅匹配常规文件,请添加全局限定符 .
。 Glob 限定符是 zsh 的一项功能。
mv *(.) existing/subsubdirectory/
(实际上*
会跳过名称以.
(“点文件”)开头的文件。这可能不是这里关心的问题,但如果您确实需要移动这些文件,请D
在括号内添加 。)