N個のファイルをサブディレクトリに保存する

N個のファイルをサブディレクトリに保存する

簡単に見えることをしようとするのにはわかりません。

複数のサブディレクトリを持つディレクトリがあり、すべて複数のファイル(jpgファイル)があります。このディレクトリに4つまたはN個のファイルのみを保持するコマンドを実行したいと思います。ファイルが作成されたときに関連する質問を見たことがあるので、ファイルの順序は重要ではありません。

私はls + headで遊んで -deleteオプションを使ってループに find を入れようとしましたが、それでも運はありません。

ベストアンサー1

たぶん、次のようなものがあります。

for dir in /target/dir/*/; do
  (cd -- "$dir" && set -- *.jpg && [ "$#" -gt 4 ] && shift 4 && rm -f -- "$@")
done

を使用すると、zsh次のように短縮できます。

for dir (/target/dir/*(/)) rm -f $dir/*.jpg(N[5,-1])

おすすめ記事