Я просто пытаюсь переместить группу файлов (не символических ссылок) из моей папки / etc / apache / sites-enabled в папку / etc / apache / sites-available со следующим:
/etc/apache2/sites-enabled$ find . -maxdepth 1 -type f | xargs mv {} ../sites-available/
но я ubuntu n00b и получаю эту ошибку:
mv: target `./real-file' is not a directory
где 'real-file' - это тестовый файл, который я настроил в своей среде разработки. Я пытаюсь навести порядок в чужом беспорядке на рабочем сервере; -)
Вы могли попробовать -exec
опция с find
команда,
/etc/apache2/sites-enabled$ sudo find . -maxdepth 1 -type f -exec mv {} /etc/apache2/sites-available \;
Для движущихся файлов, принадлежавших корню, Вам нужно sudo
полномочия.
, Если Вы хотите использовать xargs
, команда тогда добавляет -I
опция к нему.
find . -maxdepth 1 -type f | sudo xargs -I {} mv {} /etc/apache2/sites-available/
Идеально необходимо использовать-print0 с находкой, таким образом, имена файлов с пробелами не завинчивают вещи.
, Например, это должно работать:
find . -whatever-flags-go-here -print0 | xargs -r0 mv -t target-directory
можно также использовать другой способ выполнить то же, но с дополнительная производительность :
find . -maxdepth 1 -type f -exec mv {} /etc/apache2/sites-available \+
Примечание, которое это заканчивает \+
, что означает, чтобы команда находки получила вывод и разворачивает в {}
выполнение, что Вы хотите, таким образом Вы избегаете, чтобы эти две опции (\;
= для каждой записи И передающий по каналу в новую команду xargs
)
Вот были объяснением (можно также проверить руководство man find
)
- исполнительная команда {} + Этот вариант - исполнительное действие выполняет указанную команду на выбранных файлах, но командная строка создается путем добавления каждого выбранного имени файла в конце; общее количество вызовов команды будет намного меньше, чем количество подобранных файлов. Командная строка создается почти таким же способом, которым xargs создает свои командные строки. Только один экземпляр †{} ’ позволяется в рамках команды. Команда выполняется в начальном каталоге.