Shell-Script

將最新文件從一個目錄移動到另一個目錄

  • July 12, 2014

我正在嘗試將最新文件從一個目錄移動到另一個目錄。該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’ 命令的引入將新行轉換回空值。

引用自:https://unix.stackexchange.com/questions/144079