find
FILE よりも古いファイルのリストを取得し、xargs
(または) を使用してファイルを別の場所に移動するために を使用する計画があり-exec
ます。物の移動は問題ではありません。| xargs mv {} ~/trash
正常に動作します。
今、私が使用しようとすると! -newer FILE
、FILE
リストに含まれていますが、これは望ましくありません!
ただし、このコマンド引数の機能は確かに論理的に理にかなっています。これは、次のように、「新しくない」が「同じまたは古い」と解釈される可能性が非常に高いためです。
$ find . ! -newer Selection_008.png -exec ls -l {} \;
比較引数からのファイルを含めます。
-rw-r--r-- 1 and and 178058 2012-09-24 11:46 ./Selection_004.png
-rw-r--r-- 1 and and 16260 2012-09-21 11:25 ./Selection_003.png
-rw-r--r-- 1 and and 38329 2012-10-04 17:13 ./Selection_008.png
-rw-r--r-- 1 and and 177615 2012-09-24 11:53 ./Selection_005.png
(ls -l
は説明のために日付のみを表示するためのものです)
私が本当に必要としてfind
いるのは-older
オプションですが、どれもリストされていませんfind(1)
...
もちろん、出力をgrep -v
、 usesed
などにパイプするか、環境変数を利用してファイル名 (fx. for grep -v
) を再利用することで、次のような DRY 原則を楽しむことができます。
$ COMP=Selection_008.png find . ! -newer $COMP | grep -v $COMP | xargs ...
しかし、それはワンライナーのためにたくさん書いているようで、それは私が探しているものではありません.
より短い/簡単な方法はありますか、find
またはいくつかのオプションがありませんか? マンページを確認し、GoogleとSOを検索しました...