Bash
如果文件不存在,bash 重定向到文件
我有這個 bash 程式碼:
if [[ ! -f "$HOME/.oresoftware/package.json" ]]; then cat "node_modules/@oresoftware/package.json" > "$HOME/.oresoftware/package.json"; fi
但是有沒有辦法只在一行程式碼中不存在文件時才重定向到文件?像這樣的東西:
cat "node_modules/@oresoftware/package.json" ?> "$HOME/.oresoftware/package.json";
我想那會很有趣
如果您設置該
noclobber
選項,bash 將拒絕覆蓋現有文件:$ set -C # or set -o noclobber $ touch foo $ cat bar > foo bash: foo: cannot overwrite existing file
所以:
set -C cat "node_modules/@oresoftware/package.json" > "$HOME/.oresoftware/package.json"
如果要忽略退出狀態,可以在命令
!
前加一個cat
set -C; ! cat "node_modules/@oresoftware/package.json" > "$HOME/.oresoftware/package.json"