我有一个目录,里面有很多文件和目录。为了整理它,我要把所有这些文件放到一个目录中,所以我打算这样做:
$ ls | wc -l
123
$ mkdir new_directory
$ mv * ./new_directory
但是这显然行不通,因为它会尝试进入new_directory
。new_directory
有没有简单的方法可以在一行中完成我想要的操作,而不必复制和粘贴该目录中的所有文件和目录?
答案1
你的
mv * ./新目录命令实际上会起作用;它只会打印一条警告,提示它无法将该目录移动到自身中。
答案2
一个快速而肮脏的单行代码。
mv `ls -A | grep -v new_directory` ./new_directory
答案3
如果你只是在寻找文件(即不是目录),那么
find . -type f -maxdepth 1 -exec mv {} ./new_directory/ \;
是最可移植的解决方案。为了提高速度,您应该移动 find 和 xargs,并使用 -print0 和 -0,但前提是您有 GNU find 和 xargs。
答案4
关于什么:
cd ..
mv old_dir new_directory
mkdir old_dir
mv new_directory old_dir
换句话说,不要将内容移动到新目录中,而是将该目录放在新目录中。