そのため、削除/移動/フィルタリングが必要なファイルがあります。
ディレクトリにframes
このパターンfilenameが含まれていると仮定すると、ディレクトリ内のすべてのファイルにこれらのパターンがありますtimestamp_in_nanosecond.jpg
。
以下は、lsでパイプの尾を使用するファイルの例です。ls | tail
。 (lsが遅すぎるため、tailを使用します。おそらくリストするファイルが多すぎるからです)。
.../uwc/frames $ ls | tail
1660649146201561661.jpg
1660649146411875151.jpg
1660649146622526505.jpg
1660649146832063432.jpg
1660649147042957234.jpg
1660649147254488848.jpg
1660649147466753015.jpg
1660649147889093171.jpg
1660649148193314525.jpg
1660649148786199681.jpg
ファイルを別のディレクトリに移動するにはframes2
どうすればよいですか(例:以下のようにスコープを指定)。
From 1660649147000000000.jpg
Until 1660649148000000000.jpg
したがって、frames2
dirには次のファイルのみが含まれます。
1660649147042957234.jpg
1660649147254488848.jpg
1660649147466753015.jpg
1660649147889093171.jpg
答え1
ワイルドカードの使用
mv 1660649147?????????.jpg frames2/
キャップを含めるかどうかに応じて、キャップも含めることができます。
mv 1660649148000000000.jpg frames2/
バッファ領域が不足していてワイルドカードを一致させるファイルが多すぎる場合は、代わりに次のように使用してくださいfind
。
find . -name 'frames2' -prune -o -name '1660649147?????????.jpg' -exec mv -t frames2/ {} +
ノート
- この
-name 'frames2' -prune
セクションはサブディレクトリfind
に降りるのを防ぎますframes2
。実際に他の場所にいる場合は必要ありません(または「-o
または」)。frames2
mv
GNU拡張がない場合は、句をに変更してください。ただし-t
、完了に時間がかなりかかることに注意してください。-exec
-exec mv {} frames2/ \;
すべての場合に、実際にファイルを移動せずに選択したファイルセットを表示できるmv
ように変更できます。echo mv