あるディレクトリから別のディレクトリに最新のファイルを移動する

あるディレクトリから別のディレクトリに最新のファイルを移動する

あるディレクトリから別のディレクトリに最新のファイルを移動しようとしています。この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これで改行文字に分割されます\nxargs出力を使用するときに出力を処理するには、-0NULL文字で区切る必要があります\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' コマンドが導入されました。

おすすめ記事