Move
移動文件時有一個額外的 > 字元,現在該文件夾失去了
我嘗試將 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
如何將原件恢復到原來的位置?
這裡
>
將標準輸出重定向到一個文件,就像在更正常的案例中一樣:printf "%s\n" "hello world" > filename
周圍的空格
>
是可選的,它不必在最後。這也是一樣的:printf "%s\n">filename "hello world"
所以你的
mv
行會更傳統地寫成:mv /u01/app/oracle/product/12.1.0.2/db_1/dbs/ /u01/shared_data/oradata/TEST/test.dbf > test2.dbf
它已將您的文件夾重命名為
test.dbf
(在不同的目錄中)並將mv
’s stdout(可能沒有)寫入test2.dbf
您目前的目錄中。希望這不會意外覆蓋 Oracle 數據文件。PS:如果 extra
>
是一個常見的問題,bash 的set -o noclobber
/set -C
選項至少可以幫助防止覆蓋文件。bash 手冊頁將其描述為:如果設置,bash 不會使用 、 和重定向運算符覆蓋>
現有>&
文件<>
。在使用重定向運算符>|
而不是>
.