我尝试将 Linux 中的文件从一个目录移动到另一个目录,但不小心多了一个 > 字符。
mv /u01/app/oracle/product/12.1.0.2/db_1/dbs/>test2.dbf /u01/shared_data/oradata/TEST/test.dbf
现在,我的整个dbs
文件夹都不见了。但是,当我找到该dbs
文件夹时/u01/app/oracle/product/12.1.0.2/db_1/dbs
,它似乎在那里,但我不能ll
或cd
它:
-bash: cd: /u01/app/oracle/product/12.1.0.2/db_1/dbs: No such file or directory
如何将原件恢复到原来的位置?
这里
>
将标准输出重定向到一个文件,就像在更正常的用例中一样:周围的空格
>
是可选的,它不必在最后。这也是一样的:所以你的
mv
行会更传统地写成:它已将您的文件夹重命名为
test.dbf
(在不同的目录中)并将mv
's stdout(可能没有)写入test2.dbf
您当前的目录中。希望这不会意外覆盖 Oracle 数据文件。PS:如果 extra
>
是一个常见的问题,bash 的set -o noclobber
/set -C
选项至少可以帮助防止覆盖文件。bash 手册页将其描述为:如果设置,bash 不会使用 、 和重定向运算符覆盖>
现有>&
文件<>
。在使用重定向运算符>|
而不是>
.