Движущиеся файлы определенного типа / расширение от одного каталога до другого?

Заполните большую папку большим количеством различных файлов. Идеально, я хочу сместить все различные файлы в их соответствующие папки; так jpg файлы в jpg папку и т.д.

Исходная папка: папка назначения unsorted_files: jpgfolder я попробовал

mv /home/tony/Desktop/unsorted_files/*.jpg /home/tony/Desktop/jpgfolder

Но добрался, ошибка "jpgfolder" не является каталогом"

0
задан 9 November 2017 в 08:08

2 ответа

Взятие в учетной записи, что 1) Q сказал "большое количество... файлов" - список файлов не мог бы все поместиться в один буфер командной строки (2 084 684 байта в МОЕЙ системе); и 2) Имена файлов могли бы содержать забавные символы ("My Stuff.jpg"); mv не лучший способ. Используя find, xargs, и верное знание, что имена файлов не должны содержать байты NUL (или наклонные черты):

find /home/tony/Desktop/unsorted_files/ -maxdepth 1 -type f -iname '*.jpg' -print0 | \
    xargs -0 --no-run-if-empty echo mv --target-directory=/home/tony/Desktop/jpgfolder

Однажды echod команды выглядят правильными, удаляют echo, и позвольте mv сделайте работу.

Если Вы уже сделали mv /home/tony/Desktop/unsorted_files/*.jpg /home/tony/Desktop/jpgfolder Перед созданием /home/tony/Desktop/jpgfolder, ничто не было потеряно, но Вы должны, как в других ответах было сказано, mkdir -p /home/tony/Desktop/jpgfolder сначала.

2
ответ дан 1 November 2019 в 06:09

Насколько я знаю - исправления приветствуются - mv на самом деле не перемещает файлы, это переименовывает их. Таким образом, Вы пытаетесь переименовать все jpg файлы к имени папки.

Я попробовал бы:

rsync /home/tony/Desktop/unsorted_files/*.jpg /home/tony/Desktop/jpgfolder
-1
ответ дан 1 November 2019 в 06:09

Другие вопросы по тегам:

Похожие вопросы: