Shell-Script
將最新文件從一個目錄移動到另一個目錄
我正在嘗試將最新文件從一個目錄移動到另一個目錄。該
find
命令會找到文件,但不會將它們移動到另一個目錄。目標目錄存在。$ cd /app/path1/path2 && \ find . -type f -printf "%C@ %p\n" | sort | tail -n 2 | \ cut -d " " -f 2- |xargs -0 mv -t /app/path1/path2/path3 error: mv: cannot stat No such file or directory
您的問題是由於您已經控制了生成的輸出格式,
find
現在在換行符上拆分,\n
. 為了xargs
在使用輸出時處理您-0
的輸出,需要用空字元分隔,\0
. 不過,這是一個簡單的修復方法:$ find . -type f -printf "%C@ %p\n" | sort | tail -n 2 | \ cut -d " " -f 2- | tr '\n' '\0' | xargs -0 mv -t /app/path1/path2/path3
`tr ‘\n’ ‘\0’ 命令的引入將新行轉換回空值。