ls -1
и команду, считающую число строк wc -l
, в процессе могут пригодиться head
или tail
для ограничения числа выводимых строк с путями файлов и xargs
для передачи параметров в mv
ls -1
команду вида find . -type f
с ключём -exec #!/usr/bin/env bash
DIR1="/path/to/dir1"
DIR2="/path/to/dir2"
i=0
for f in $DIR1; do
[[ -f $f ]] || continue
_=$(( i++ ))
done
if $i -gt 1000; then
count=$($i - 1000)
files=$(find "$DIR1" -maxdepth 1 -type f -exec stat -c "%Y %n" {} \; | sort -rn | tail -n -"$count" | awk '{print $2}')
fi
for file in $files; do
mv "$file" $DIR2
done