Движущиеся файлы с находкой + xargs: цель не является каталогом?

Хорошо, у Вас, кажется, нет доступа для / (не может CD),

Можно ли попробовать chmod 755 /

9
06.09.2016, 14:02
2 ответа

Принятие Вас имеет GNU (find, xargs, & mv), измените свою команду на это:

$ find /foot/bar/ -name '*.csv' -print0 | xargs -0 mv -t some_dir

выборка от mv страница справочника

   -t, --target-directory=DIRECTORY
          move all SOURCE arguments into DIRECTORY

Вышеупомянутое xargs ... создаст команду так, чтобы вызовы для перемещения были похожи на это:

 $ mv 1.csv 2.csv 3.csv ... -t some_dir

Не нужен xargs

Можно пропустить этот подход, просто имея find сделайте всю работу саму:

$ find /foot/bar/ -name '*.csv' -exec mv -t some_dir {} +

Почему Вам нужно mv -t ...?

Это имеет отношение к пути который xargs создает набор файлов для передачи команде, которую он собирается выполнить каждый раз, (т.е. mv ...).

Когда Вы работаете mv управляйте вручную собой, Вы управляете, сколько имен файлов передается ему и таким образом, Вы не должны волноваться о необходимости -t my_dir так как Вы всегда будете помещать целевой каталог в последний раз.

Ссылки

13
27.01.2020, 20:06
  • 1
    Спасибо! Это очень полезно. Я немного смущен хотя (см. мои Обновления) –  Amelio Vazquez-Reina 20.07.2013, 23:29
  • 2
    Созданная команда mv -t some_dir 1.csv 2.csv 3.csv ... таким образом, аргументы файла являются последними. Это - ошибка в вопросе для использования {} необходимо передать -I {} кому: xargs. –  frostschutz 21.07.2013, 00:03
  • 3
    Спасибо. Это объясняет все. Что относительно второго вопроса я имел в Обновлении 2? Вы знаете, почему мне не нужно -t с несколькими файлами и каталогом с постоянным клиентом mv? –  Amelio Vazquez-Reina 21.07.2013, 01:45
  • 4
    @user815423426 - Я обновлю его позже, когда я получу шанс сегодня вечером, я действительно знаю почему. –  slm♦ 21.07.2013, 02:47
  • 5
    @user815423426 - Я обновил вопрос, сообщите мне, имеет ли он смысл wrt mv -t. –  slm♦ 21.07.2013, 15:40

Вы также можете использовать команду ls вместо команды поиска:

ls /foot/bar/*.csv | xargs  mv -t some_dir
1
27.01.2020, 20:06

Теги

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