Я спас много файлов от провального жесткого диска. Они находятся в 500 подкаталогах каждый содержащий 500 файлов.
Я пытаюсь скопировать все файлы во всех папках в новые тематические каталоги (как jpg, mp3 и т.д.)
В высокоуровневом каталоге (MikeO) я использую следующую команду:
cp -R * /test1
где test1 был уже создан под MikeO
Это просто воссоздает всю структуру подкаталога и все файлы в test1
cp -R *.jpg /test1 results in:
cp: cannot stat ‘*.jpg’: No such file or directory
кто-либо может указать на меня в правильном направлении?
Нет никаких файлов, названных" .jpg" в месте, где Вы дали команду. Необходимо взять тот литерал: " .jpg" не" .JPG" или" .jPg" или любая другая комбинация. Windows отличается таким образом: это будет рассматривать тех как то же.
В том же каталоге делают ls
, и он покажет содержание того каталога. ls *jpg
для списка всех файлов, заканчивающихся на *.jpg
.
Мышление, которое-R означает рекурсивный, НО это относится к каталогам только при копировании. Это не означает, что это получит Вас всех файлы во всех каталогах, которые имеют файл, заканчивающийся в *.jpg
.
, Если Вы хотите найти все файлы, заканчивающиеся в *.jpg и скопировать их в/test1/, это будет работать:
find . -depth -name '*.jpg' -print | cpio -pmdv /test1/
Добавляют ~
к/test1/, если это находится в Вашем корневом каталоге.
, где test1 был уже создан под MikeO
, Что Вы имеете в виду с этим? Если Вы корневой каталог meand "MikeO": эти /
запускается в /
(т.е. корень). Если Вы имели в виду /home/MikeO/test
/ Вам нужно ~
перед /test1
.
Можно использовать rsync
вместо cp
команда для копирования конкретных дополнительных файлов. Следующее является командой для копирования только .jpg дополнительные файлы.
rsync -pavr \
--include '+ */' --include '*.jpg' --exclude '- *' \
/path/to/source/directory /path/to/destination/directory