Bash
嘗試寫入文件的 Bash 腳本錯誤:沒有這樣的文件或目錄
我收到一個非常簡單的腳本錯誤。該腳本應該執行 pg_dumpall 並將輸出寫入文件,但我收到一個錯誤,即生成的文件不存在。我知道它不存在,所以我想創造它!:-/
#!/bin/bash #remove previous day's dump and create new rm -f /home/user/db_dump_*.txt; pg_dumpall -U postgres -w > /home/user/db_dump_`date '+%d/%m/%Y_%H:%M:%S'`.txt;
結果是:
db_dump.sh: line 4: /home/user/db_dump_12/02/2017_14:30:15.txt: No such file or directory
date 命令工作正常,文件名完美,但不是正在創建文件,而是錯誤提示它不存在。我以 root 身份執行腳本,因此權限應該沒有問題。我可以毫無問題地寫入使用者的主目錄。
有任何想法嗎?
再次檢查生成的文件名:
/home/user/db_dump_12/02/2017_14:30:15.txt
它嘗試寫入名為
02
of的子目錄db_dump_12
。如果這些目錄不存在,您將收到“沒有這樣的文件或目錄”錯誤。我建議使用另一種日期格式:
dumpfile_date=$( date +"%F-%T" ) # or %Y%m%d-%H%M%S or something similar pg_dumpall -U postgres -w > "/home/user/db_dump_$dumpfile_date.txt"