Как скопировать определенное количество отсортированных файлов? (например, 11 ГБ)

Я хотел бы скопировать в общей сложности 11 ГБ файлов (весь тип .mp3 для этого вопроса) из папки ~/ABC/ в ~/DEF/ . И мне нравится делать это для отсортированных файлов по убыванию по дате, последней измененной / измененной в ABC (т. Е. Файл, который был изменен совсем недавно, должен сначала скопироваться).

Имена файлов содержат пробелы и символы, такие как & и / и так далее.

Я немного огляделся и до сих пор, и использование кода из (несколько) связанных вопросов не выглядит разумным imho (не то, чтобы я был хорошим судьей).

Как я могу это сделать? 🙂

  • Как скопировать использование для цикла?
  • Как заставить двинуть что-то, когда sudo mv -f не работает?
  • Копирование нескольких типов файлов в одной команде
  • Разместить файл доступа ht в webroot каждого скрипта bash каталога
  • Различные размеры после копирования
  • Как скопировать каталог рекурсивно с помощью hardlinks для каждого файла
  • Как перезаписать каталог в нескольких местах с одним исходным каталогом
  • Как переместить некоторые, но не все файлы из одного каталога в другой?
  • One Solution collect form web for “Как скопировать определенное количество отсортированных файлов? (например, 11 ГБ)”

    Я уверен, что есть лучший способ сделать это, но я надеюсь, что это поможет. LIMIT – это сумма для копирования в килобайтах.

     #! /bin/bash LIMIT='11534336' size='0' if [[ -e $1 && -d $2 ]];then echo "copying contents from $1 to $2" else echo "Usage: $0 SOURCE DEST" exit fi for i in $(ls -t $1); do var="$(echo $(du -s $(realpath $1/$i)))" IFS=" " read var1 var2 <<< "$var" let "size += $var1" if [[ $size -lt $LIMIT ]];then echo "copying " $var2 "to $2" cp -r $var2 $2 else exit fi done 
    Interesting Posts
    Linux и Unix - лучшая ОС в мире.