我想将目录的全部内容(包含所有子文件夹)向上移动一级
cd /dir/subdir
mv * /dir
cd ..
rm -R subir/
我/dir
有所有文件夹和子文件夹,但它们是空的。我做错了什么?
文件系统是 BTRFS,我尝试过btrfs restore
但没有成功。
任何帮助,将不胜感激。
答案1
让我们看看你做了什么。我假设所有命令都是标准工具,没有以任何方式进行调整。 (检查type cd
、type mv
和type rm
。如果有的话,aliased
我们需要知道这一点。例如,mv is aliased to 'mv -i'
是我们需要知道的事情,但是cd is a shell builtin
或 也rm is /bin/rm
可以。)
cd /dir/subdir
移动到文件系统中的绝对路径。假设没有报告任何错误,您现在处于
/dir/subdir
.mv * /dir
将此目录中可见的所有内容移至绝对目录
/dir
。假设没有名称以 开头的文件-
(因为您忘记了--
)并且没有报告任何错误,则 中的所有文件和目录/dir/subdir
现在都位于/dir
.文件(和子目录,如果有)被移动,而不是复制,因此文件内容不会以任何方式被触及或更改除非
/dir/subdir
位于不同的文件系统上/dir
。cd ..
取决于您的 shell 或提供
subdir
不是到文件系统其他部分的符号链接,和如果没有报告任何错误,您现在应该处于/dir
.要绝对确定您所在的目录,请使用
pwd -P
.rm -R subir/
该命令可能应该失败。但也许你的意思是
rm -R subdir
,在这种情况下目录subdir
以及任何剩余内容将被删除。您可以
rmdir subdir
删除该目录,以便系统在该目录意外非空时向您发出警告。
如果此时文件为空并且您输入的任何命令都没有错误,那么在你开始之前它们都是空的。