Заполните большую папку большим количеством различных файлов. Идеально, я хочу сместить все различные файлы в их соответствующие папки; так jpg файлы в jpg папку и т.д.
Исходная папка: папка назначения unsorted_files: jpgfolder я попробовал
mv /home/tony/Desktop/unsorted_files/*.jpg /home/tony/Desktop/jpgfolder
Но добрался, ошибка "jpgfolder" не является каталогом"
Взятие в учетной записи, что 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
Однажды echo
d команды выглядят правильными, удаляют echo
, и позвольте mv
сделайте работу.
Если Вы уже сделали mv /home/tony/Desktop/unsorted_files/*.jpg /home/tony/Desktop/jpgfolder
Перед созданием /home/tony/Desktop/jpgfolder
, ничто не было потеряно, но Вы должны, как в других ответах было сказано, mkdir -p /home/tony/Desktop/jpgfolder
сначала.
Насколько я знаю - исправления приветствуются - mv
на самом деле не перемещает файлы, это переименовывает их. Таким образом, Вы пытаетесь переименовать все jpg файлы к имени папки.
Я попробовал бы:
rsync /home/tony/Desktop/unsorted_files/*.jpg /home/tony/Desktop/jpgfolder