あるディレクトリから別のディレクトリに最新のファイルを移動しようとしています。この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
ベストアンサー1
あなたの問題は、生成された出力の形式を制御したために発生します。find
これで改行文字に分割されます\n
。xargs
出力を使用するときに出力を処理するには、-0
NULL文字で区切る必要があります\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
新しい行を再び null 値に変換する `tr '\n' '\0' コマンドが導入されました。