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

невозможно удалить папку " указанное вами имя файла недопустимо или слишком длинное. укажите другое имя файла"
Расшифровка и шифрование файла с помощью gpg без повторного ввода пароля
Добавление записей реестра для всех пользователей
Как изменить параметры локальной групповой политики с помощью командной строки? [дубликат]
Клиент командной строки IRC для Windows [закрыт]
Класс процесса WIN32 для команды Powershell Get-WmiObject
Пакетный скрипт для обрезки строк в тексте только до первых 30 или 50 символов
Как запустить виртуальную машину VirtualBox из командной строки?
Как конвертировать HTML в бесконечный одностраничный PDF через wkhtmltopdf?
Как запустить copype.cmd для WinPE из пакетного файла
Командная строка не позволяет мне ввести пароль в PuTTY
Передача http-ссылки на vlc в качестве аргумента командной строки
В 7-Zip командная строка побега
Вход с Linux FTP имя пользователя и пароль
Как загрузить файлы из общих ссылок Amazon Cloud Drive через командную строку?

Рекурсивное перемещение файлов и папок в Linux

считаем:

ls -al ../public-back
drwxrwxr-x  4 apache   apache     4096 Apr 19 03:32 templates

ls -al ../public-back/templates

drwxrwxr-x  2 apache   apache    4096 Apr 19 03:33 content
drwxrwxr-x  2 apache   apache   20480 Apr 20 06:14 images
drwxrwxr-x  2 apache   apache    4096 Apr 19 03:35 video

ls -al /public

drwxrwxr-x  4 apache   apache     4096 Apr 20 09:49 templates

ls -al /public/templates

drwxrwxr-x  2 apache   apache    4096 Apr 20 09:50 content
drwxrwxr-x  2 apache   apache    4096 Apr 20 09:50 images
drwxrwxr-x  2 apache   apache    4096 Apr 20 09:50 video

как переместить содержимое /public-back/templates рекурсивно с разрешениями в /public/templates?

5
задан Peter Mortensen
источник

5 ответов

Если я неправильно вопрос, это будет работать:

mv /public-back/templates/* /public/templates

кроме того, если у вас есть огромный список файлов, добавив -i спросит, прежде чем перезаписывать что-либо, что добавляет некоторую безопасность при использовании подстановочных знаков, таких как *.

74
отвечен KennyPeanuts 2018-01-14 21:20:21
источник

страница man для cp гласит:

-p same as --preserve=mode,ownership,timestamps
-r same as --recursive=copy directories recursively

попробовать;

cp -rp /public-back/templates/* /public/templates/
6
отвечен Himalay 2011-04-20 14:24:07
источник

при перемещении элементов с флэш-накопителя в систему OSMC я обнаружил следующее очень полезным:

find /media/Pi\ Hard\ 16GB/ -name '*' -exec mv -v {} /media/External\ HDD/Videos/ \;

объяснение о том, как это работает ниже.

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

find  finds all files and folders in the destination path.

/media/Pi Hard 16GB/ is the path searched. Escape special char such as spaces.

-name '*' filters on names. If you do not escape or quote this then 
          the shell will expand it before find sees it.

-exec     Executes a command, in our case mv

-v        Verbose, so you can see what's happening (optional)

{}        is replaced by the name of the found object.

фактически, вы находите все файлы и все папки и перемещаете их по одному (или, если каталог будет найден первым, вы перемещаете этот каталог и содержимое в нем). Это запускает новый процесс для каждого хода и очень неэффективно. Используйте его только в случае сбоя обычных команд.

3
отвечен Pi Hard 2016-02-18 22:19:48
источник

МВ не для этого. Но вы можете использовать этот маленький трюк, работает как шарм:

tar cf - . |(cd /targetdir; tar xvf -)

и сохраняет разрешения и все.

Примечание: ни один из выше работал для меня, поэтому это временное решение.

2
отвечен svye 2015-10-20 15:24:37
источник
cp -a --link ../public-back/* /public/.  &&  rm -rf ../public-back

Так что создание жестких ссылок на каталог и удалить источник реж. 'mv' просто не будет работать в вашем случае, и вообще работает только тогда, когда source dir и dest не имеют общих поддеревьев.

обратите внимание, что я предполагаю, что слово "переместить" в вопросе означает, что исходный каталог должен исчезнуть после операции.

0
отвечен Boudewijn 2017-09-06 07:16:13
источник

Другие вопросы command-line linux mv