移動するファイルの数をどのように設定しますか? [コピー]

移動するファイルの数をどのように設定しますか? [コピー]

次からpngファイルを移動する予定です。source/dest/

mv /source/*.png /dest/

png10個のファイルだけを移動するようにコマンドを変更するにはどうすればよいですか?

答え1

Zshで利用可能グローバル予選:

mv /source/*.png([1,10]) /dest/

最初の10個をアルファベット順に移動します。 //o修飾子をO使用して異なる順序を選択できますn。たとえば、

mv /source/*.png(OL[1,10]) /dest/

最大10項目が移動されます。

ソートなしで最初の10個の一致を選択する最適化されたバージョンは、修飾子を使用して実行できますY

mv /source/*.png(Y10) /dest/

答え2

POSIXly では、以下を使用してこれを行うことができます。

set -- /source/*.png
[ "$#" -le 10 ] || shift "$(( $# - 10 ))"
mv -- "$@" /dest/

これにより、最後の10個がアルファベット順に移動されます。

隠しファイルは除外されます。一致するものがない場合は、名前付きファイルを移動しようとし、/source/*.png失敗する可能性があります。

答え3

ls /source/*.png | head -n10 | xargs -I{} mv {} /dest/

関連情報